Skip to content

[Bug] Studio UI POST /pimcore-studio/api/property fails with symfony-config write_target (same-request read-back not possible) #152

Description

@elements-team

Affected Version

2026.1

Affected capability

Documents

Steps to reproduce

  1. Set config_location.predefined_properties.write_target.type: symfony-config in config/packages/pimcore.yaml
  2. Open Studio UI → Settings → Predefined Properties → Click "Add"
  3. POST /pimcore-studio/api/property throws 404: Property with ID: {uuid} not found

Actual Behavior

PropertyService::createPredefinedProperty() saves via propertyRepository->createPredefinedProperty() then immediately calls getPredefinedProperty($id) to read it back.

The predefined property is created, but the following error is return from /pimcore-studio/api/property:

{ "message": "No route found for \"GET https://pimcore.dev.local/pimcore-studio/api/property\": Method Not Allowed (Allow: POST)", "detail": "#0 /var/www/html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php(115): Symfony\\Component\\HttpKernel\\EventListener\\RouterListener->onKernelRequest(Object(Symfony\\Component\\HttpKernel\\Event\\RequestEvent), 'kernel.request', Object(Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher))\n#1 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\\Component\\EventDispatcher\\Debug\\WrappedListener->__invoke(Object(Symfony\\Component\\HttpKernel\\Event\\RequestEvent), 'kernel.request', Object(Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher))\n#2 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners(Array, 'kernel.request', Object(Symfony\\Component\\HttpKernel\\Event\\RequestEvent))\n#3 /var/www/html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php(129): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch(Object(Symfony\\Component\\HttpKernel\\Event\\RequestEvent), 'kernel.request')\n#4 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(159): Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcher->dispatch(Object(Symfony\\Component\\HttpKernel\\Event\\RequestEvent), 'kernel.request')\n#5 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#6 /var/www/html/vendor/symfony/http-kernel/Kernel.php(193): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#7 /var/www/html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php(35): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#8 /var/www/html/vendor/autoload_runtime.php(32): Symfony\\Component\\Runtime\\Runner\\Symfony\\HttpKernelRunner->run()\n#9 /var/www/html/public/index.php(16): require_once('/var/www/html/v...')\n#10 {main}" }

With write_target: symfony-config, LocationAwareConfigRepository::saveConfig() writes a YAML file to disk and invalidates the Symfony container cache. However, loadConfigByKey() reads exclusively from containerConfig (the Symfony container compiled at boot time) or SettingsStore. The newly written YAML file is not available in containerConfig until the next container rebuild — so same-request read-back always fails.

Expected Behavior

  • symfony-config write target supports same-request reads (by also reading from disk at runtime), or
  • Studio UI POST /property hydrates the already-created Predefined object directly instead of re-fetching by ID

Affected class: Pimcore\Config\LocationAwareConfigRepository::loadConfigByKey() — no YAML file read at runtime, only containerConfig (compile-time) and SettingsStore

Metadata

Metadata

Assignees

No one assigned

    Type

    Platform Version

    2026.1

    Affected capability

    Documents

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions