PAR-238 · Log issue for luckperms-economy-explorer cron not syncing · Paradaux · taskl.ie
PAR-238
Log issue for luckperms-economy-explorer cron not syncing
There is an issue with the luckperms-economy-explorer cron not syncing properly. Further investigation is needed to determine the cause and resolve the issue.
Activity
Ttesks created the issue
Ttesks set status to In Progress ·Jun 21
T
tesksJun 21
Diagnosis — not a code bug; a prod deployment/config gap
The reconciliation cron works. Confirmed live on the in-cluster dc-test-server (minecraft ns), running TreasuryAPI 2.0.0 + LuckPerms 5.5.11. Server log:
[TreasuryAPI] Group reconciliation cron scheduled (every 60s).
[TreasuryAPI] Reconciled explorer group 1: +1 -0 members
[TreasuryAPI] Reconciled explorer group 1: +0 -1 members
So: reconciliation is enabled there, LuckPerms is present, the cron schedules, and the treasury.group.* node mapping resolves to members. The reconciliation logic in treasury-api-plugin (GroupReconciliationTask) is sound — this is not a code defect.
Mechanism: it's an in-plugin Bukkit async task (not a k8s CronJob — there is none in the cluster or in gitops), gated on reconciliation.enabled (ships false) + LuckPerms present.
Where it's actually broken: the production DemocracyCraft/StateCraft servers, which are external to this cluster (only dc-test-server is in-cluster). On the prod DemocracyCraft economy DB (s80037_economy):
explorer_group has 2 sync-configured groups — Economy → treasury.group.economy, Government → treasury.group.government.
explorer_group_member is empty → prod has never reconciled any members.
Likely prod cause (can't read the external prod server configs from here):
reconciliation.enabled not set to true on the prod servers, and/or
an outdated TreasuryAPI build deployed on prod (the in-cluster one is already 2.0.0 vs repo 2.2.1 — prod may predate or lag the feature), and/or
no LuckPerms users actually carry the treasury.group.economy / treasury.group.government permission on prod.
Red herring: the earlier "cross-database mismatch (treasury vs economy DB)" theory is wrong — the live shared DB holds accounts/ledger_*andexplorer_group* in one schema.
Resolution (operational, on the external prod servers): ensure reconciliation.enabled: true, deploy a current TreasuryAPI build, confirm LuckPerms is present, and confirm the treasury.group.* nodes are actually granted to the intended players. Optional repo-side hardening: flip the shipped reconciliation.enabled default to true and make the "cron not scheduled" startup condition log loudly so this can't silently sit broken.
PParadauxIO linked a commit: Commit 4201429 — Make LuckPerms→explorer group reconciliation robust (PAR-238) ·Jun 25
PParadauxIO linked a pull request: PR #2 open — Last major release ·Jul 11
Workspace permission required to comment
Comments and reactions require workspace permission. Ask a workspace owner or admin for access. You can sign in to vote.
Diagnosis — not a code bug; a prod deployment/config gap
The reconciliation cron works. Confirmed live on the in-cluster
dc-test-server(minecraft ns), running TreasuryAPI 2.0.0 + LuckPerms 5.5.11. Server log:So: reconciliation is enabled there, LuckPerms is present, the cron schedules, and the
treasury.group.*node mapping resolves to members. The reconciliation logic intreasury-api-plugin(GroupReconciliationTask) is sound — this is not a code defect.Mechanism: it's an in-plugin Bukkit async task (not a k8s CronJob — there is none in the cluster or in gitops), gated on
reconciliation.enabled(shipsfalse) + LuckPerms present.Where it's actually broken: the production DemocracyCraft/StateCraft servers, which are external to this cluster (only
dc-test-serveris in-cluster). On the prod DemocracyCraft economy DB (s80037_economy):explorer_grouphas 2 sync-configured groups —Economy → treasury.group.economy,Government → treasury.group.government.explorer_group_memberis empty → prod has never reconciled any members.Likely prod cause (can't read the external prod server configs from here):
reconciliation.enablednot set totrueon the prod servers, and/ortreasury.group.economy/treasury.group.governmentpermission on prod.Red herring: the earlier "cross-database mismatch (treasury vs economy DB)" theory is wrong — the live shared DB holds
accounts/ledger_*andexplorer_group*in one schema.Resolution (operational, on the external prod servers): ensure
reconciliation.enabled: true, deploy a current TreasuryAPI build, confirm LuckPerms is present, and confirm thetreasury.group.*nodes are actually granted to the intended players. Optional repo-side hardening: flip the shippedreconciliation.enableddefault totrueand make the "cron not scheduled" startup condition log loudly so this can't silently sit broken.