h hopperCode

Troubleshooting

The common failure modes and how to get back to a connected canvas.

No backend / tools fail

Ensure the Hopper Code Backend component is on the canvas and Rhino is running, then run /hopper-backend to refresh the connection. If ports 55555557 are busy, the backend should fall back to free loopback ports automatically and show the profile path in the component log.

Invalid connection token

Restart the frontend after the backend has started so it can reread the connection profile. If you are using manual endpoint env vars, also set GH_ZMQ_TOKEN.

GH shows offline when Revit has focus (Rhino.Inside)

The plugin marshals Grasshopper work onto Rhino’s UI thread via InvokeOnUiThread (not Idle). Keep Grasshopper visible while the agent is working, or run /hopper-backend after refocusing. Liveness checks use a lightweight ping probe that does not touch the canvas. Older Rhino.Inside.Revit versions may still limit background Grasshopper — RiR 1.27+ improves this.

Plugin did not install

Install the .NET 7 SDK, then run pnpm run build:gh-plugin. On Windows, set HOPPER_GH_LIBRARIES if auto-detect of the Libraries path fails.

Stale plugin after git pull

Force a full rebuild and copy, then restart Rhino.

terminal
node scripts/install-grasshopper-plugin.mjs --force