Creating a OX Context with a space in Name causes ox-connector to CrashLoop

We’re currently running a few openDesk instances and discovered that creating an OX Context with a space in its ame causes the ox-connector to crashloop

Deleting the Context again and deleting the LDAP, provisioner and ox-connector pods doesn’t fix the problem, it keeps CrashLooping trying to create the same context with the invalid name.

objects.soap.admin.openexchange.com/xsd"><ns2:InvalidDataException><ns2:Exception xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"></ns2:Exception><ns5:objectname xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"></ns5:objectname></ns2:InvalidDataException></ns2:InvalidDataException></detail></soap:Fault></soap:Body></soap:Envelope>
2025-06-05 18:20:58,169 ERROR [consumer.create:171] Failed to handle creation
Traceback (most recent call last):
  File "/consumer.py", line 158, in create
    run(obj)
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/provisioning/__init__.py", line 81, in run
    create_context(obj)
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/provisioning/contexts.py", line 73, in create_context
    context.create()
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/soap/backend.py", line 251, in create
    obj = self.default_service.create(context, admin_user)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/soap/services.py", line 349, in create
    return self._call_ox(
           ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/soap/services.py", line 194, in _call_ox
    return getattr(service, func)(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/proxy.py", line 46, in __call__
    return self._proxy._binding.send(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/wsdl/bindings/soap.py", line 135, in send
    return self.process_reply(client, operation_obj, response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/wsdl/bindings/soap.py", line 229, in process_reply
    return self.process_error(doc, operation)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/wsdl/bindings/soap.py", line 329, in process_error
    raise Fault(
zeep.exceptions.Fault: Illegal chars: "  " in login mapping; exceptionId 1745022103-6
2025-06-05 18:20:58,171 WARNING [consumer.create:172] Illegal chars: "  " in login mapping; exceptionId 1745022103-6
Traceback (most recent call last):
  File "/consumer.py", line 298, in <module>
    main()
  File "/consumer.py", line 289, in main
    asyncio.run(
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/consumer.py", line 112, in start_listening_for_changes
    await message_handler(client, [self.handle_message]).run()
  File "/usr/local/lib/python3.11/dist-packages/univention/provisioning/consumer/api.py", line 192, in run
    await callback(message)
  File "/consumer.py", line 140, in handle_message
    self.create(new_obj, new_obj.get("dn"))
  File "/consumer.py", line 158, in create
    run(obj)
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/provisioning/__init__.py", line 81, in run
    create_context(obj)
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/provisioning/contexts.py", line 73, in create_context
    context.create()
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/soap/backend.py", line 251, in create
    obj = self.default_service.create(context, admin_user)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/soap/services.py", line 349, in create
    return self._call_ox(
           ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/univention/ox/soap/services.py", line 194, in _call_ox
    return getattr(service, func)(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/proxy.py", line 46, in __call__
    return self._proxy._binding.send(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/wsdl/bindings/soap.py", line 135, in send
    return self.process_reply(client, operation_obj, response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/wsdl/bindings/soap.py", line 229, in process_reply
    return self.process_error(doc, operation)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/zeep/wsdl/bindings/soap.py", line 329, in process_error
    raise Fault(
zeep.exceptions.Fault: Illegal chars: "  " in login mapping; exceptionId 1745022103-6