Org config pushes old central host (hypaware.hyperparam.app), identity check refuses it, daemon exits 75
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- javascript, node.js
- Domain
- authentication, backend
Research direction
Start with src/core/remote/builtin_remotes.js and central/src/identity_client.js, which the issue identifies as the alias-handling and raw-comparison paths. Then trace where the server supplies sinks.central.config.url; that location is not identified here. The scope spans client identity checks, server-published org config, and daemon recovery; done means a fresh login and daemon run keep the central sink healthy, and no served config contains the old host.
Written by the indexing model from the issue text.
Description
Summary
After hyp remote login against https://api.hypaware.ai, the org config served to the host sets sinks.central.config.url = "https://hypaware.hyperparam.app". The central identity check compares that against the persisted identity's central_url (https://api.hypaware.ai) as raw strings, refuses to load, and the central sink fails to materialize. The processing worker exits 75 and takes the whole daemon down, gateway included.
Environment: hypaware 1.40.0, Node 22.22.0, Linux cloud container (no systemd), daemon run with hyp daemon run. Org hyperparam.
Repro
npm i -g [email protected]hyp setup --yes --no-daemonhyp remote login --no-browser --no-daemon(as a member of the hyperparam org)hyp daemon run- Within about 1s:
processing.exited code 75,gateway.stopped.hyp statusshows:
sink 'central' not materialized [sink_materialize_failed]: identity central URL mismatch: persisted identity was minted by https://api.hypaware.ai but the configured central server is https://hypaware.hyperparam.app. Re-run `hyp remote login` against the new server to enroll this host
Evidence from the host:
plugins/@hypaware/central/identity.json:central_url = https://api.hypaware.ai,origin = loginconfig-control/config.a.json(from login):sinks.central.config.url = https://api.hypaware.aiconfig-control/config.b.json(org config pulled at daemon start, applied on probation):sinks.central.config.url = https://hypaware.hyperparam.app
Causes and fixes
- Client: alias not applied (fix in PR).
BUILTIN_ORIGIN_ALIASESinsrc/core/remote/builtin_remotes.jsalready foldshypaware.hyperparam.appintoapi.hypaware.ai, and its docstring says every same-server comparison reads through it.central/src/identity_client.jscompares raw strings in both the load-time mismatch check andmintChanged(). - Server: org config still names the old host. Find where the served config sets
sinks.central.config.url(org record, default template, or a server env var) and change it tohttps://api.hypaware.ai, or omit it so the client keeps the URL it signed in against. Check every org, not just hyperparam. Even with fix 1, the sink would send to the old host, which environments that allowlist onlyapi.hypaware.aiblock (verified: 403 from the egress proxy). - Server: guard on publish. Reject or warn on an org config whose central URL differs from the URL the server issues identities under.
- Client: a bad pushed config takes the daemon down. Probation existed (
previous_slot a), but the process exited before any rollback, and exit 75 stopped the gateway too. Withproxy_mode: true, every client routed through the gateway loses model API access. Expected: keep running on the previous slot, or roll back right away. Worth confirming whether rollback ever runs when the daemon is dead. - Client: misleading remedy. The error says to re-run
hyp remote login"against the new server", buthyp remote logintakes a remote name, not a URL, so that hint can't be followed. - Ops: revoke the gateway token for
gw-348d71329a9f0243. It was exposed while debugging.
Done when
- A fresh login plus
hyp daemon runstays healthy andhyp status --verboselists the central sink. - Nothing the server serves contains
hypaware.hyperparam.app.
- Dominant language
- JavaScript
- Stars
- 11
- Forks
- 0
- Avg merge
- 2h 55m
- Merged PRs (30d)
- 294
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from hyparam/hypaware
-
neutral:fix
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
report_commands.js runtime output still says 'server' in four places; one names the destinationOpen
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 76/100
Maintainers usually reply within 1 day
All issues in hyparam/hypaware
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
521xueweihan/HelloGitHub#4237 ·
-
enhancement localization
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
quarto-dev/quarto-cli#15268 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
oarepo/oarepo-ui#512 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 2 days