Skip to content

data-integrator errors getting latest secret revision: state changing too quickly; #223

@Fedqys

Description

@Fedqys

Hello!

I have a juju environment that consumes a DB as a SAAS. In there, I deployed a pgbouncer and a data-integrator. It was working well last week, and this week, when I logged in and ran juju status, pgbouncer and data-integrator were in an error state due to "secret-changed".

Specifically, this is the error I'm getting in the data integrator: ops.model.ModelError: ERROR getting latest secret revision: state changing too quickly; try again soon. (full traceback below)

I tried rebooting the unit to see if it gets the right secret, but it didn't work. I also tried running juju resolved to re-trigger the unit, but it didn’t work.

Versions

Operating system: Ubuntu 22.04.5 LTS

Juju CLI: 3.6.8-ubuntu-amd64

Juju agent: 3.6.14

Charm revision:

  • data-integrator: 179
  • pgbouncer: 877

Log output

Traceback:

unit-data-integrator-8: 12:41:40 INFO juju.worker.uniter awaiting error resolution for "secret-changed" hook
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log ops 2.22.0 up and running.
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log Emitting Juju event secret_changed.
unit-data-integrator-8: 12:41:40 INFO unit.data-integrator/8.juju-log authentication updated
unit-data-integrator-8: 12:41:40 INFO unit.data-integrator/8.juju-log etcd_ready updated
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log Emitting custom event <EtcdReadyEvent app='pgbouncer' unit='pgbouncer/7' on <ops.model.Relation postgresql:40> via IntegratorCharm/EtcdRequires[etcd]/on/etcd_ready[9059]>.
unit-data-integrator-8: 12:41:40 DEBUG unit.data-integrator/8.juju-log etcd ready received
unit-data-integrator-8: 12:41:41 ERROR unit.data-integrator/8.juju-log Uncaught exception while in charm code:
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 3422, in _run
    result = subprocess.run(args, **kwargs)  # type: ignore
  File "/usr/lib/python3.10/subprocess.py", line 526, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('/var/lib/juju/tools/unit-data-integrator-8/secret-get', '--label', 'postgresql.40.user.secret', '--refresh', '--format=json')' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 525, in <module>
    main(IntegratorCharm)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/__init__.py", line 356, in __call__
    return _main.main(charm_class=charm_class, use_juju_for_storage=use_juju_for_storage)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 475, in main
    manager.run()
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 459, in run
    self._emit()
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 403, in _emit
    self._emit_charm_event(self.dispatcher.event_name)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/_main.py", line 438, in _emit_charm_event
    event_to_emit.emit(*args, **kwargs)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 351, in emit
    framework._emit(event)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 924, in _emit
    self._reemit(event_path)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 1030, in _reemit
    custom_handler(event)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 4201, in _on_secret_changed_event
    getattr(self.on, "etcd_ready").emit(relation, app=relation.app, unit=remote_unit)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 351, in emit
    framework._emit(event)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 924, in _emit
    self._reemit(event_path)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/framework.py", line 1030, in _reemit
    custom_handler(event)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 306, in _on_etcd_ready
    self._on_config_changed(event)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 184, in _on_config_changed
    self.unit.status = self.get_status()
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 133, in get_status
    self.is_database_related,
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 443, in is_database_related
    possible_relations = [
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 444, in <listcomp>
    self._check_for_credentials(database_requirer)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/src/charm.py", line 453, in _check_for_credentials
    if requirer.fetch_relation_field(
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1567, in fetch_relation_field
    self.fetch_relation_data([relation_id], [field], relation_name)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1559, in fetch_relation_data
    data[relation.id] = self._fetch_specific_relation_data(relation, fields)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1068, in _fetch_specific_relation_data
    return self._fetch_relation_data_with_secrets(
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1452, in _fetch_relation_data_with_secrets
    result, normal_fields = self._process_secret_fields(
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1396, in _process_secret_fields
    if group_result := operation(relation, group, secret_fields, *args, **kwargs):
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 1331, in _get_group_secret_contents
    secret_data := secret.get_content()
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/lib/charms/data_platform_libs/v0/data_interfaces.py", line 752, in get_content
    self._secret_content = self.meta.get_content(refresh=True)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 1462, in get_content
    self._content = self._backend.secret_get(id=self.id, label=self.label, refresh=refresh)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 3808, in secret_get
    result = self._run('secret-get', *args, return_output=True, use_json=True)
  File "/var/lib/juju/agents/unit-data-integrator-8/charm/venv/lib/python3.10/site-packages/ops/model.py", line 3424, in _run
    raise ModelError(e.stderr) from e
ops.model.ModelError: ERROR getting latest secret revision: state changing too quickly; try again soon

Additional context

These are my juju relations:

Integration provider                   Requirer                               Interface              Type         Message
data-integrator:data-integrator-peers  data-integrator:data-integrator-peers  data-integrator-peers  peer         
pgbouncer:database                     data-integrator:postgresql             postgresql_client      subordinate  
pgbouncer:pgb-peers                    pgbouncer:pgb-peers                    pgb_peers              peer         
pgbouncer:upgrade                      pgbouncer:upgrade                      upgrade                peer         
postgresql:database                    pgbouncer:backend-database             postgresql_client      regular    
$ juju show-secret 04318833-3d82-4131-89ae-36b2fe3d4cbe/d5sgggeh3aneiqh6kubg --revisions
d5sgggeh3aneiqh6kubg:
  revision: 533
  owner: pgbouncer
  label: database.40.user.secret
  created: 2026-01-27T18:47:30Z
  updated: 2026-01-30T12:50:35Z
  revisions:
  - revision: 526
    backend: internal
    created: 2026-01-30T12:33:10Z
    updated: 2026-01-30T12:33:10Z
  - revision: 532
    backend: internal
    created: 2026-01-30T12:50:24Z
    updated: 2026-01-30T12:50:24Z
  access:
  - target: application-data-integrator
    scope: relation-data-integrator.postgresql#pgbouncer.database
    role: view

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions