| ”the relay only admits registered resolvers” | You have not registered this address | panofx-node register --policy policy.yaml, or Go live in the app |
| ”replaced this connection with a newer one” | Another instance runs with the same key | Stop one of them |
Declines are all no_rate | No band yet, or your rate is off the band | Wait 10 seconds after connecting, or switch to oracle: true |
clock_skew | System clock drift | Enable NTP |
Offers rejected insufficient_allowance | Permit2 approval missing | Enable trading in the app, or panofx-node approve --policy policy.yaml |
Offers rejected insufficient_balance | The address holds less than the offer gives | Add inventory, or lower max_ticket_base |
| ”Panofx Node is already running” | The app and a terminal copy both want the same wallet | Quit one: only one node per wallet |
| macOS says it “could not verify” the app | A tester build, which is not notarized | System Settings → Privacy & Security → Open Anyway, then open the app again. In a terminal, xattr -dr com.apple.quarantine "/Applications/Panofx Node.app" does the same |
| The app opens from a strange path, or its node never starts | macOS ran the copy still in Downloads | Move Panofx Node into Applications and open it from there |
| Your node stops overnight | The Mac slept | Turn on Keep this Mac awake in the menu, leave the lid open, or run it on a server |
| Windows says “Windows protected your PC” | The binary is not code-signed yet | More info → Run anyway, or Properties → Unblock |
| The pairing link has expired | Links work once, for 15 minutes at first boot | Restart the service, or panofx-node remote pair |
| ”is not writable by this container’s user” | The volume is owned by root | On Railway set RAILWAY_RUN_UID=0; elsewhere chown 10001:10001 the volume |
| ”set PANOFX_KEYFILE_JSON to the full contents” | The policy names the runtime keyfile but none was passed | Set PANOFX_KEYFILE_JSON to the whole keyfile, one line |
| ”PANOFX_KEY_PASSPHRASE holds a keyfile” | The keyfile went in the passphrase variable | Put the keyfile in PANOFX_KEYFILE_JSON and only the passphrase in PANOFX_KEY_PASSPHRASE |
Every RFQ declined unknown_executor | The node predates the executor deployed on 13 September 2026 | Upgrade to 0.5.0 or later, or set PANOFX_EXECUTOR |
signer_unavailable with Turnkey or MPCVault | The API secret is missing, or signing takes over 700 ms | Set the _FILE variable and run panofx-node signer test |