Skip to content

Default UI Deployment Manifest Contains Invalid JSON #3062

Description

@andeke07
  • Which image of the operator are you using? ghcr.io/zalando/postgres-operator-ui:v1.15.1
  • Where do you run it - cloud or metal? Kubernetes or OpenShift? Bare Medal K8S
  • Are you running Postgres Operator in production? yes
  • Type of issue? Bug report

When following the standard documentation to install postgres-operator, the default deployment manifest for the UI contains invalid JSON and the container fails to start:

2026-03-27T18:02:41.618509043Z Traceback (most recent call last):
2026-03-27T18:02:41.618536249Z   File "<frozen runpy>", line 198, in _run_module_as_main
2026-03-27T18:02:41.618547749Z   File "<frozen runpy>", line 88, in _run_code
2026-03-27T18:02:41.618557100Z   File "/app/operator_ui/__main__.py", line 1, in <module>
2026-03-27T18:02:41.618783907Z     from .main import main
2026-03-27T18:02:41.618807169Z   File "/app/operator_ui/main.py", line 63, in <module>
2026-03-27T18:02:41.619130607Z     OPERATOR_UI_CONFIG = loads(getenv('OPERATOR_UI_CONFIG', '{}'))
2026-03-27T18:02:41.619154607Z                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-27T18:02:41.619165762Z   File "/usr/local/lib/python3.11/json/__init__.py", line 346, in loads
2026-03-27T18:02:41.619757608Z     return _default_decoder.decode(s)
2026-03-27T18:02:41.619782196Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-27T18:02:41.619789571Z   File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode
2026-03-27T18:02:41.620140115Z     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
2026-03-27T18:02:41.620284341Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-27T18:02:41.620298670Z   File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode
2026-03-27T18:02:41.620727762Z     raise JSONDecodeError("Expecting value", s, err.value) from None
2026-03-27T18:02:41.620752154Z json.decoder.JSONDecodeError: Expecting value: line 25 column 3 (char 602)

investigation of the OPERATOR_UI_CONFIG environment variable in the default deployment shows an extra comma within ui/manifests/deployment.yaml:

"postgresql_versions": [
  "18",
  "17",
  "16",
  "15",
  "14",
]

This extra comma after "14" causes the parser to fail and the pod goes in to a crash loop.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions