Paradaux

PAR-238

0

Log issue for luckperms-economy-explorer cron not syncing

In ProgressHighrianEconomy ExplorerBug

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.

Resources

Comments

tesks · Jun 21, 2026, 7:51 PM

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):

  1. reconciliation.enabled not set to true on the prod servers, and/or
  2. 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
  3. 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_* and explorer_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.

Activity

  • ParadauxIO linked a pull request — PR #2 open — Last major release
  • ParadauxIO linked a pull request — PR #2 open — Last major release
  • ParadauxIO linked a pull request — PR #2 open — Last major release
  • ParadauxIO linked a pull request — PR #2 open — Last major release
  • ParadauxIO linked a pull request — PR #2 open — Last major release
  • ParadauxIO linked a pull request — PR #2 open — Last major release
  • ParadauxIO linked a pull request — PR #2 open — Last major release
  • ParadauxIO linked a commit — Commit 4201429 — Make LuckPerms→explorer group reconciliation robust (PAR-238)
  • tesks commented
  • tesks changed status to Status → In Progress
  • tesks created the issue