[horde] nginx rewrite problems

Ralf Lang ralf.lang at gmail.com
Sat Mar 28 13:16:39 UTC 2026


Hi Ruud,

I see we are progressing a bit but we are not yet there.

1) You should not use the "master" version of horde/bundle but it's my
fault you were using it. Remove it. Replace the relevant entries with the
ones from bundle/composer.json at FRAMEWORK_6_0 · horde/bundle
<https://github.com/horde/bundle/blob/FRAMEWORK_6_0/composer.json>
I have now deleted the "master" version to avoid misleading anybody else.

2) The geo driver issue is a problem. We found a solution for some of your
sync issues but still it's an undesirable state that something somewhere
else suddenly breaks because you haven't configured some subsystem. I will
need to look into it. For now, keep it activated (the way it "mostly"
worked).

3) Can you send me privately a full davx5 sync log?


   1. Enable Verbose Logging: Open DAVx⁵, go to Settings, and toggle on Verbose
   Logging. (This ensures all technical details are captured).
   2. Reproduce the Issue: Manually start a synchronization or perform the
   action that is causing the error.
   3. Export the Log:
      - Tap the DAVx⁵ notification in your Android status bar (or go to
      Settings > Debug info).
      - Tap the Share/Send icon (usually a paperclip or share symbol).
      - Select your email app or a file manager to save the .zip file
      (e.g., davx5-debug.zip).
   4. Disable Logging: Once sent, toggle Verbose Logging off to save
   battery and storage.

   *PRIVACY*: This log may be long. Please don't send it to the list. You
   may have to obfuscate names and adresses of people - I am only interested
   in how it breaks.


On Sat, Mar 28, 2026 at 10:01 AM Ruud Baart <r.j.baart at prompt.nl> wrote:

> Hi Ralf,
>
> Thank you for answering.
> Op 2026-03-27 om 14:19 schreef Ralf Lang:
>
> Hi Ruud,
>
> 1) The time sync issue is weird. Please make a backup of your database and
> afterwards run horde-db-migration command again to make sure you are on the
> right schema for kronolith.
>
> Database is correct I think. But before going on with that problem, sync
> must be 100% reliable.
>
> 2) Next, if you check using "composer outdated", you’ll see that there are
> some modules that aren’t updated automatically. The first question is: is
> it a good idea or not to also update “horde/horde-installer-plugin”,
> “sabre/event”, “sabre/http”, “sabre/uri”, and “sabre/xml”?
>
> You best run "composer why-not horde/horde-installer-plugin 3.3.1" to get
> an idea why exactly it's not updated.
>
> It makes things not more clear for me. Probably because I don't understand
> the explanation.
>
> composer why-not horde/horde-installer-plugin 3.3.1
> horde/bundle dev-master requires horde/horde-installer-plugin (^2.5.1 || dev-FRAMEWORK_6_0 || dev-master)
>
> There is a dependency which blocks the update.  I understand - because a
> tried in an experimental environnement - that this module must/can be
> chosen when you start a new installation but you can't use it in an
> existing horde 6 installation. Is it better/important to start a fresh
> installation with this 3.3.1 version?
>
> And what about the sabre modules. Same here, the dependency horde/bundle
> dev-master requires sabre/event (^5.1) blocks the update? Are the outdated
> sabre modules  perhaps a problem for the DAV functionality.
>
> As an ordinary mortal, I sometimes lose my way in all this. Especially
> when I'm having trouble with Horde
>
>
> 3) DAV
> ----
>
> <?xml version="1.0" encoding="utf-8"?>
> <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" <http://sabredav.org/ns>>
>   <s:sabredav-version>4.7.0</s:sabredav-version>
>   <s:exception>Sabre\DAV\Exception</s:exception>
>   <s:message>Circular dependency detected: Kronolith_Geo → Kronolith_Geo</s:message>
> </d:error>
>
> Check your Horde Base App's conf.php if you have correctly configured your
> geo driver ($conf['maps']['geo']) -  in the UI it's in
> http://localhost/horde/admin/config/config.php under the "maps" tab.
>
> In my opinion, this is bizarre.
>
> You are right: if I change the configuration of the geo driver the
> behavior of DAV changes. But:
>
> (1) I did not touch the configuration of the geo driver. It was always not
> configured. For as long as I can remember the configuration I used was
> $conf['maps']['driver'] = false. Suddenly I can't synchronise calenders
> without configuring the geo driver after running 'composer update'
>
>  (2) I tried to configure the geo driver. The current geo driver
> configuration is now: $conf['maps']['providers'] = array('Google'),
> $conf['maps']['geocoder'] = 'Google', $conf['maps']['geodriver'] = 'Sql'.
> With this configuration most of the calendars synchronise (DAV). One
> calender won't synchronise. The message in my DAVx5:
>
> HTTP RESPONSE
> <?xml version="1.0" encoding="utf-8"?>
> <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" <http://sabredav.org/ns>>
>   <s:sabredav-version>4.7.0</s:sabredav-version>
>   <s:exception>Sabre\DAV\Exception</s:exception>
>   <s:message>Kan tijd invoer niet verwerken (04)</s:message>
> </d:error>
>
> Strange error (translated: can't proces time input) and probably
> incorrect. This calendar has very few entries and I can't see any strange
> times. And all entries are accepted bij Kronolith.
>
> As said, I can't configure "$conf['maps']['driver'] = false" because then
> all calenders won't sync. I can change $conf['maps']['providers'] =
> array('Google') for another provider. But I *must*
> configure $conf['maps']['geocoder'] otherwise no sync and I *must* $conf['maps']['geodriver'].
> If I choose none no syncing.
>
> So, you put me on the right track but the solution is not evident for me.
>
>
>
>
>
> On Fri, Mar 27, 2026 at 12:40 PM Ruud Baart <r.j.baart at prompt.nl> wrote:
>
>> Hi Ralf,
>>
>> I’ll explain my question a bit further. A while ago, I switched from
>> Horde 5 (which I’d been using for many years) to Horde 6. I was actually
>> forced to do so because PHP 7 was causing increasing problems when used
>> with other software.  The transition was far from smooth. Perhaps this was
>> also due to my lack of familiarity with composer and Horde 6. Ultimately, I
>> now have a stable Debian system, Trixie (13.4), running PHP 8.4. I’m using
>> Nginx 1.26 and PHP-FPM.
>>
>> There were still a few PHP errors with Horde/nginx, but it works. The
>> issues I’ve been having over the past few weeks are related to
>> Kronolith/DAV. The DAV calendars in Thunderbird are out of sync. The times
>> keep shifting. A while back, this was caused by a Thunderbird bug in the
>> local caching of the calendar. After updating to a new version of
>> Thunderbird, the problem seemed to be resolved. In recent weeks, the
>> problem has returned, much to the annoyance of the few users I still
>> support. Appointments made via the web interface or the ActiveSync client
>> do work properly. My first thought was that the existing rewrite rules in
>> the Nginx configuration were no longer sufficient. After further
>> consideration, I don’t actually think that’s the case.
>>
>> I suspect there's an issue with the time zone between Thunderbird and
>> Kronolith. To troubleshoot the issue again, I decided to start by updating
>> the Horde 6 environment. It seems that the developers are working very hard
>> to achieve a stable Horde 6 environment. So I ran a "composer update".
>> Immediately after that, the DAV synchronization stopped working.
>>
>> Since I have the chance to give some context 🙂: first, a few questions
>> about the Horde 6 update. I did:
>>
>> composer require horde/kronolith dev-FRAMEWORK_6_0
>> composer update
>>
>> Next, if you check using "composer outdated", you’ll see that there are
>> some modules that aren’t updated automatically. The first question is: is
>> it a good idea or not to also update “horde/horde-installer-plugin”,
>> “sabre/event”, “sabre/http”, “sabre/uri”, and “sabre/xml”?  I believe that
>> Sabre is the basis for DAV functionality. Since it doesn't update
>> automatically via “composer update,” I'm not sure if updating these modules
>> is a good idea. If the sabre modules need to be updated, it is not clear to
>> me how that should be done. A simple composer update sabre/event doesn't
>> update anything.
>>
>> There are no real messages why DAV synchronization stopped working. Debug
>> in horde is E_ALL but I don't see errors. Not in nginx logging nor horde
>> logging.
>>
>> Two errors, but they are not new:
>>
>> (1) after a request for syncing calander:
>>
>> 2026/03/27 09:47:43 [error] 2843694#2843694: *172335 readv() failed
>> (104: Connection reset by peer) while reading upstream, client: 12.34.56.78, server: aa.bb.cc, request: "PUT
>> /horde/rpc/calendars/user at domain.xy/calendar~aFTuBIgXZjXzg2GLq54ZNg3/04a82709-de6c-4f8e-ba33-5f1022ddf8df.ics
>> HTTP/2.0" <PUT/horde/rpc/calendars/user at domain.xy/calendar~aFTuBIgXZjXzg2GLq54ZNg3/04a82709-de6c-4f8e-ba33-5f1022ddf8df.icsHTTP/2.0>, upstream: "fastcgi://unix:/run/php/php8.4-fpm.sock:",
>> host: "aa.bb.cc"
>>
>> (2) Activesync heartbeat (I think)
>>
>> 2026/03/27 00:27:24 [error] 2843696#2843696: *118314 upstream timed out (110: Connection timed out) while reading
>> response header from upstream, client: 12.34.56.78, server: aa.bb.cc, request:
>> "POST /Microsoft-Server-ActiveSync?Cmd=Ping&User=user%40domain.xy&DeviceId=androidc123456&DeviceType=Android HTTP/1.1",
>> upstream: "fastcgi://unix:/run/php/php8.4-fpm.sock", host: "aa.bb.cc"
>>
>> On my Android device  with a DAV client (DAVx5) I see a new error. The
>> client won't sync and the debug information shows:
>>
>> HTTP REQUEST
>> PUT https://aa.bb.cc/horde/rpc/calendars/user@domain.xy/calendar~aFTuBIgXZjXzg2GLq54ZNg3/04a82709-de6c-4f8e-ba33-5f1022ddf8df.ics
>>
>> HTTP RESPONSE
>> <?xml version="1.0" encoding="utf-8"?>
>> <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" <http://sabredav.org/ns>>
>>   <s:sabredav-version>4.7.0</s:sabredav-version>
>>   <s:exception>Sabre\DAV\Exception</s:exception>
>>   <s:message>Circular dependency detected: Kronolith_Geo → Kronolith_Geo</s:message>
>> </d:error>
>>
>> Before I can return to the problem with the incorrect hours in
>> Thunderbird calender syncing must be working.  I need help with the syncing
>> problem because I can't find with is wrong and/or why.
>>
>> When syncing is ok again I return to the Thunderbird calendar problem. I
>> suppose it is a timezone problem between cache and DAV sync. But I'm not
>> sure.
>>
>> Sorry, quite a long story.
>> Op 27-3-2026 om 05:13 schreef Ralf Lang:
>>
>> Hello Ruud,
>>
>> can you provide some context? When you manually hit horde/rpc.php or
>> /horde/rpc/ and enter your credentials what exactly happens or is shown?
>>
>>
>> On Thu, Mar 26, 2026 at 3:37 PM Ruud Baart <r.j.baart at prompt.nl> wrote:
>>
>>> Hi,
>>>
>>> Horde 6 + nginx has been working reasonably well over the past few
>>> weeks. No major issues. However kronolith gives me some problems, I
>>> think there are time zone problems again. Possibly caused by Thunderbird.
>>>
>>> To solve these problems, I started with “composer update” yesterday.
>>> Thing got worse and now the DAV isn't working properly anymore. It seems
>>> to me that my rewrite rules in nginx.conf are no longer correct.
>>> Apparently, something has changed.
>>>
>>> I'd like to see a current, working nginx configuration to compare it
>>> with what I have. Maybe that will help me solve the problem.
>>>
>>>
>>> Ruud Baart
>>>
>>> --
>>> Horde mailing list
>>> Frequently Asked Questions: http://horde.org/faq/
>>> To unsubscribe, mail: horde-unsubscribe at lists.horde.org
>>>
>> --
>
> Cordialement,
>
>
> * R.J. Baart Portable: +33 7 88398245 *
>


More information about the horde mailing list