> ## Documentation Index
> Fetch the complete documentation index at: https://docs.panofx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> What you see, what causes it, and the fix.

| You see                                                     | Cause                                                        | Fix                                                                                                                                                                            |
| ----------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| "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`                                                                                                                     |

Still stuck? Your console on the web app shows the relay's view of your node, and `panofx-node status`
shows the node's own. Compare the two. The [decline](/resolvers/operate/declines) and
[rejection](/resolvers/operate/rejections) pages list every reason.
