Problem: Problem with User Migration: UCP-0003 Error in Open-Xchange

Problem

When attempting to migrate a user (e.g., User.01) from Context 35 to Context 41 in Open-Xchange, the following error occurs:

2026-01-29 09:28:17 INFO    Error while processing /var/lib/univention-appcenter/apps/ox-connector/data/listener/2026-01-28-22-44-02-657596.json
2026-01-29 09:28:17 WARNING Traceback (most recent call last):
2026-01-29 09:28:17 WARNING   File "/tmp/univention-ox-connector.listener_trigger", line 374, in run_on_files
2026-01-29 09:28:17 WARNING     function(obj)
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/univention/ox/provisioning/__init__.py", line 101, in run
2026-01-29 09:28:17 WARNING     modify_user(obj)
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/univention/ox/provisioning/users.py", line 443, in modify_user
2026-01-29 09:28:17 WARNING     create_user(
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/univention/ox/provisioning/users.py", line 340, in create_user
2026-01-29 09:28:17 WARNING     user_copy_service.copy_user(
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/univention/ox/soap/services.py", line 1174, in copy_user
2026-01-29 09:28:17 WARNING     return self._call_ox(
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/univention/ox/soap/services.py", line 203, in _call_ox
2026-01-29 09:28:17 WARNING     return getattr(service, func)(**kwargs)
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/zeep/proxy.py", line 46, in __call__
2026-01-29 09:28:17 INFO    This is consecutive error #6
2026-01-29 09:28:17 WARNING     return self._proxy._binding.send(
2026-01-29 09:28:17 INFO    Sleeping for 0 sec
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/zeep/wsdl/bindings/soap.py", line 135, in send
2026-01-29 09:28:17 WARNING     return self.process_reply(client, operation_obj, response)
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/zeep/wsdl/bindings/soap.py", line 229, in process_reply
2026-01-29 09:28:17 WARNING     return self.process_error(doc, operation)
2026-01-29 09:28:17 WARNING   File "/usr/lib/python3.9/site-packages/zeep/wsdl/bindings/soap.py", line 329, in process_error
2026-01-29 09:28:17 WARNING     raise Fault(
2026-01-29 09:28:17 WARNING zeep.exceptions.Fault: UCP-0003 Categories=ERROR Message='Unexpected problem occurred.' exceptionID=-207012281-8028103; exceptionId 341419956-43568

This error is logged in the ox-connector service and is linked to a mismatch between Open-Xchange configurations and LDAP attributes.


Root Cause

The error stems from a configuration mismatch in Open-Xchange:

  1. Mail Categories Enabled:

    • Open-Xchange is configured to use mail categories (via open-xchange-mail-categories enabled in Kubernetes values.yaml and com.openexchange.mail.categories=true in /opt/open-xchange/etc/mail-categories.properties).
    • This configuration expects specific attributes (e.g., mailCategories) to be present in the LDAP directory.
  2. Missing LDAP Attributes:

    • The user User.01 exists in Context 41 but lacks the required attributes (e.g., mailCategories) that Open-Xchange expects due to the mail categories configuration.
    • The ox-connector attempts to map default LDAP attributes but fails to retrieve the necessary data, triggering the UCP-0003 error.

Solution

Step 1: Verify Open-Xchange Configuration

  1. Check Kubernetes values.yaml:
    Ensure open-xchange-mail-categories: enabled is configured.
  2. Check Mail Categories Properties:
    Confirm com.openexchange.mail.categories=true is set in /opt/open-xchange/etc/mail-categories.properties.

Step 2: Validate LDAP Attributes

  1. Query User Attributes:
    Run the following command to check if the user has the required attributes:

    univention-ldapsearch -LLL uid=User.01 oxContextIDNum  
    

    Ensure attributes like mailCategories are present in the user’s LDAP entry.

  2. Add Missing Attributes:
    If attributes are missing, update the user’s LDAP entry to include them (e.g., mailCategories).

Step 3: Adjust Open-Xchange Configuration (Alternative)

If LDAP attributes cannot be modified:

  1. Disable Mail Categories:
    • Set open-xchange-mail-categories: disabled in values.yaml.
    • Remove com.openexchange.mail.categories=true from /opt/open-xchange/etc/mail-categories.properties.
  2. Restart Open-Xchange Services:
    Apply changes and restart the Open-Xchange deployment.

Additional Notes

  • Context 41 vs. Context 35:
    The user exists in Context 41, but the migration fails due to configuration mismatches. Ensure both contexts are aligned with Open-Xchange requirements.
  • Debugging Tips:
    • Check ox-connector logs for detailed error traces.
    • Use univention-ldapsearch to validate attribute availability.

References