[horde] Error inserting new event in kronolith

Ruud Baart r.j.baart at prompt.nl
Sun Mar 1 15:17:36 UTC 2026


Addition:

Regarding the missing value of ical_id and the table definition I assume 
a statement  something like "select 
nextval(pg_get_serial_sequence('kronolith_icalendar_storage', 
'ical_id'));" must be added.

      kronolith_icalendar_storage
                                              Table "public.kronolith_icalendar_storage"
        Column    |          Type          | Collation | Nullable |                           Default
    -------------+------------------------+-----------+----------+--------------------------------------------------------------
      ical_id     | integer                |           | not null | nextval('kronolith_icalendar_storage_ical_id_seq'::regclass)
      calendar_id | character varying(255) |           | not null |
      event_uid   | character varying(255) |           | not null |
      event_data  | text                   |           | not null |


Op 1-3-2026 om 16:01 schreef Ruud Baart:
> Hi again,
>
> My system: Debian trixie, postgres 17, php 8.4, caldav calendar, Horde 
> (horde) 
> <https://mail.tiswe.fr/horde/admin/config/config.php?app=horde> 
> 6.0.0-beta1 , Agenda (kronolith) 
> <https://mail.tiswe.fr/horde/admin/config/config.php?app=kronolith> 
> 5.0.0-alpha9 , Horde_Dav 2.0.0alpha4
>
> There is an annoying, severe error while inserting and updating an 
> event with kronolith - see logfile.
>
> 1. The first error seems to be that $result is not defined. I assume
>    there must be something added as: if (defined ($results)) { } else {}
> 2. Not null error means that ical_id is NULL. Either the databse
>    definition of kronolith_icalendar_storage id not correct or ical_id
>    must have a value
>
> I inserted a very simple event. No recurrence, just "new event at Mars 
> 2, between 16:00 adn 17:00" . Thats all. The caldav calendar client 
> (Thunderbird 147 an 148) accept the new event but will not show it. 
> Immediately the calendar involved changes to read-only. After a forced 
> sync the new event is inserted in the calendar. Further, I'm not sure 
> but for me all these timestamps - see logfile - seems to be too much.
>
> Any help would be very welcome.
>
> ==============
>
> LOGFILE:
>
> ==============
>
> Log of the errors (1) insert new event and (2) update event:
>
> 1. Inserting new event
>
>    2026-03-01T15:24:18+01:00 WARN: HORDE [kronolith] PHP ERROR: 
> Undefined variable $results [pid 469414 on line 1242 of 
> "/xxx/yyy/zzz/horde/vendor/horde/db/lib/Horde/Db/Adapter/Postgresql/Schema.php"]
>    2026-03-01T15:24:18+01:00 WARN: HORDE [kronolith] PHP ERROR: 
> Undefined variable $results [pid 469414 on line 1242 of 
> "/xxx/yyy/zzz/horde/vendor/horde/db/lib/Horde/Db/Adapter/Postgresql/Schema.php"]
>    2026-03-01T15:24:18+01:00 WARN: HORDE [kronolith] PHP ERROR: 
> Undefined variable $results [pid 469414 on line 1242 of 
> "/xxx/yyy/zzz/horde/vendor/horde/db/lib/Horde/Db/Adapter/Postgresql/Schema.php"]
>    2026-03-01T15:24:18+01:00 WARN: HORDE [kronolith] PHP ERROR: 
> Undefined variable $results [pid 469414 on line 1242 of 
> "/xxx/yyy/zzz/horde/vendor/horde/db/lib/Horde/Db/Adapter/Postgresql/Schema.php"]
>    2026-03-01T15:24:18+01:00 ERR: HORDE [kronolith] SQL QUERY FAILED: 
> SQLSTATE[23502]: Not null violation: 7 ERROR:  null value in column 
> "ical_id" of relation "kronolith_icalendar_storage" violates not-null 
> constraint
>    DETAIL:  Failing row contains (null, O72lQSaCnYpQP5ohZ5xBzaA, 
> q-mA4rJ2N-Q9CqUpJqlTZbP, BEGIN:VCALENDAR
>    VERSION:2.0
>    PRODID:-//Mozilla.org/NONSGML Mozi...).
>             INSERT INTO "kronolith_icalendar_storage" ("ical_id", 
> "calendar_id",
>               "event_uid", "event_data") VALUES (NULL, 
> 'O72lQSaCnYpQP5ohZ5xBzaA',
>               'q-mA4rJ2N-Q9CqUpJqlTZbP', 'BEGIN:VCALENDAR VERSION:2.0
>               PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
>               BEGIN:VTIMEZONE TZID:Europe/Paris 
> X-TZINFO:Europe/Paris[2025b]
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+000921
>               TZNAME:Europe/Paris(STD) DTSTART:19110311T000000
> RDATE:19700101T013151,19700101T010003,19700101T010011 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19160615T000000
> RDATE:19700101T013156,19700101T010006,19700101T010015 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19161002T000000
> RDATE:19700101T013156,19700101T010010,19700101T010002 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19170325T000000
> RDATE:19700101T013157,19700101T010003,19700101T010025 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19171008T000000
> RDATE:19700101T013157,19700101T010010,19700101T010008 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19180310T000000
> RDATE:19700101T013158,19700101T010003,19700101T010010 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19190302T000000
> RDATE:19700101T013159,19700101T010003,19700101T010002 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19181007T000000
> RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1MO;UNTIL=19191006T000000
>               END:STANDARD BEGIN:DAYLIGHT TZOFFSETTO:+010000 
> TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19200215T000000
> RDATE:19700101T013200,19700101T010002,19700101T010015 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19201024T000000
> RDATE:19700101T013200,19700101T010010,19700101T010024 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19210315T000000
> RDATE:19700101T013201,19700101T010003,19700101T010015 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19211026T000000
> RDATE:19700101T013201,19700101T010010,19700101T010026 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19220326T000000
> RDATE:19700101T013202,19700101T010003,19700101T010026 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19221008T000000
> RDATE:19700101T013202,19700101T010010,19700101T010008 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19230527T000000
> RDATE:19700101T013203,19700101T010005,19700101T010027 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19240330T000000
> RDATE:19700101T013204,19700101T010003,19700101T010030 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19250405T000000
> RDATE:19700101T013205,19700101T010004,19700101T010005 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19260418T000000
> RDATE:19700101T013206,19700101T010004,19700101T010018 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19270410T000000
> RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=2SA;UNTIL=19280414T230000
>               END:DAYLIGHT BEGIN:DAYLIGHT TZOFFSETTO:+010000 
> TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19290421T000000
> RDATE:19700101T013209,19700101T010004,19700101T010021 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19300413T000000
> RDATE:19700101T013210,19700101T010004,19700101T010013 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19310419T000000
> RDATE:19700101T013211,19700101T010004,19700101T010019 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19320403T000000
> RDATE:19700101T013212,19700101T010004,19700101T010003 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19231007T000000
> RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU;UNTIL=19321002T000000
>               END:STANDARD BEGIN:DAYLIGHT TZOFFSETTO:+010000 
> TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19330326T000000
> RDATE:19700101T013213,19700101T010003,19700101T010026 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19331008T000000
> RDATE:19700101T013213,19700101T010010,19700101T010008 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19340408T000000
> RDATE:19700101T013214,19700101T010004,19700101T010008 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19350331T000000
> RDATE:19700101T013215,19700101T010003,19700101T010031 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19360419T000000
> RDATE:19700101T013216,19700101T010004,19700101T010019 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19370404T000000
> RDATE:19700101T013217,19700101T010004,19700101T010004 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19380327T000000
> RDATE:19700101T013218,19700101T010003,19700101T010027 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19341007T000000
> RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU;UNTIL=19381002T000000
>               END:STANDARD BEGIN:DAYLIGHT TZOFFSETTO:+010000 
> TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19390416T000000
> RDATE:19700101T013219,19700101T010004,19700101T010016 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+000000
>               TZNAME:Europe/Paris(DST) DTSTART:19400225T030000
> RDATE:19700101T013220,19700101T010002,19700101T010025 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+000000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(STD) DTSTART:19391119T000000
> RDATE:19700101T013219,19700101T010011,19700101T010019 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(DST) DTSTART:19400615T000000
> RDATE:19700101T013220,19700101T010006,19700101T010015 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+010000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19421102T030000
> RDATE:19700101T013222,19700101T010011,19700101T010002 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(DST) DTSTART:19430329T030000
> RDATE:19700101T013223,19700101T010003,19700101T010029 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(DST) DTSTART:19440403T030000
> RDATE:19700101T013224,19700101T010004,19700101T010003 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(DST) DTSTART:19440825T000000
> RDATE:19700101T013224,19700101T010008,19700101T010025 END:DAYLIGHT
>               BEGIN:DAYLIGHT TZOFFSETTO:+010000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(DST) DTSTART:19441008T010000
> RDATE:19700101T013224,19700101T010010,19700101T010008 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+010000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19431004T030000
> RDATE:19700101T013223,19700101T010010,19700101T010004 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(DST) DTSTART:19450402T030000
> RDATE:19700101T013225,19700101T010004,19700101T010002 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+010000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19450916T030000
> RDATE:19700101T013225,19700101T010009,19700101T010016 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(DST) DTSTART:19760328T020000
> RDATE:19700101T013256,19700101T010003,19700101T010028 END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETTO:+010000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19760926T010000
> RDATE:19700101T013256,19700101T010009,19700101T010026 END:STANDARD
>               BEGIN:STANDARD TZOFFSETTO:+010000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19770925T030000
> RDATE:19700101T013257,19700101T010009,19700101T010025 END:STANDARD
>               BEGIN:STANDARD TZOFFSETTO:+010000 TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19781001T030000
> RDATE:19700101T013258,19700101T010010,19700101T010001 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(DST) DTSTART:19770403T030000
> RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=19800406T020000
>               END:DAYLIGHT BEGIN:STANDARD TZOFFSETTO:+010000 
> TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19790930T030000
> RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU;UNTIL=19950924T030000
>               END:STANDARD BEGIN:DAYLIGHT TZOFFSETTO:+020000 
> TZOFFSETFROM:+010000
>               TZNAME:Europe/Paris(DST) DTSTART:19810329T030000
> RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU;UNTIL=19960331T020000
>               END:DAYLIGHT BEGIN:STANDARD TZOFFSETTO:+010000 
> TZOFFSETFROM:+020000
>               TZNAME:Europe/Paris(STD) DTSTART:19961027T030000
> RDATE:19700101T013316,19700101T010010,19700101T010027 END:STANDARD
>               BEGIN:DAYLIGHT TZOFFSETTO:+020000 TZOFFSETFROM:+010000 
> TZNAME:(DST)
>               DTSTART:19970330T030000 
> RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
>               END:DAYLIGHT BEGIN:STANDARD TZOFFSETTO:+010000 
> TZOFFSETFROM:+020000
>               TZNAME:(STD) DTSTART:19971026T030000
>               RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU END:STANDARD 
> END:VTIMEZONE
>               BEGIN:VEVENT CREATED:20260301T142348Z 
> LAST-MODIFIED:20260301T142414Z
>               DTSTAMP:20260301T142414Z 
> UID:18a03796-b305-4e9a-8081-bc15e0ac8ce5
>               SUMMARY:new event DTSTART;TZID=Europe/Paris:20260302T160000
>               DTEND;TZID=Europe/Paris:20260302T170000 TRANSP:OPAQUE 
> END:VEVENT
>               END:VCALENDAR ') RETURNING "ical_id" [pid 469414 on line 
> 244 of 
> "/xxx/yyy/zzz/horde/vendor/horde/db/lib/Horde/Db/Adapter/Pdo/Base.php"]
>
> 2. Updating the same event:
>
>    2026-03-01T15:47:52+01:00 ERR: HORDE [kronolith] SQL QUERY FAILED: 
> SQLSTATE[23502]: Not null violation: 7 ERROR:  null value in column 
> "ical_id" of relation "kronolith_icalendar_storage" violates not-null 
> constraint
>    DETAIL:  Failing row contains (null, O72lQSaCnYpQP5ohZ5xBzaA, 
> IxmVC0rpY2TqjVripojLEYE, BEGIN:VCALENDAR
>    VERSION:2.0
>    PRODID:-//Mozilla.org/NONSGML Mozi...).
>             INSERT INTO "kronolith_icalendar_storage" ("ical_id", 
> "calendar_id",
>               "event_uid", "event_data") VALUES (NULL, 
> 'O72lQSaCnYpQP5ohZ5xBzaA',
>               'IxmVC0rpY2TqjVripojLEYE', 'BEGIN:VCALENDAR VERSION:2.0
>               PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
>               BEGIN:VTIMEZONE TZID:Europe/Paris BEGIN:DAYLIGHT 
> TZOFFSETFROM:+0100
>               TZOFFSETTO:+0200 DTSTART:20260329T030000
>               RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 TZNAME:CEST 
> END:DAYLIGHT
>               BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100
>               DTSTART:20261025T030000 
> RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
>               TZNAME:CE-T END:STANDARD END:VTIMEZONE BEGIN:VEVENT
>               CREATED:20260301T144529Z LAST-MODIFIED:20260301T144748Z
>               DTSTAMP:20260301T144748Z 
> UID:bd1fdd65-c284-49c6-a20a-77bcc2a232e5
>               SUMMARY:new event STATUS:CONFIRMED
>               DTSTART;TZID=Europe/Paris:20260302T160500
>               DTEND;TZID=Europe/Paris:20260302T170500 CLASS:PUBLIC 
> TRANSP:OPAQUE
>               SEQUENCE:1 X-MOZ-GENERATION:1 END:VEVENT END:VCALENDAR 
> ') RETURNING
>               "ical_id" [pid 469569 on line 244 of 
> "/home/websites/webmail.tiswe.fr/horde/vendor/horde/db/lib/Horde/Db/Adapter/Pdo/Base.php"]
>


More information about the horde mailing list