I have been able to setup Compute server in production via these docs.
Everything was working last time I tested, but when I was testing again today I started getting 500s and I can’t tell why. I even tried the basic twisty example:
pt1 = rhino3dm.Point3d(0, 0, 0)
circle = rhino3dm.Circle(pt1, 5)
angle = 20
# convert circle to curve and stringify
curve = json.dumps(circle.ToNurbsCurve().Encode())
# create list of input trees
curve_tree = gh.DataTree("RH_IN:curve")
curve_tree.Append([0], [curve])
rotate_tree = gh.DataTree("RH_IN:rotate")
rotate_tree.Append([0], [angle])
trees = [curve_tree, rotate_tree]
gh.EvaluateDefinition("gh/twisty.gh", trees)
Response
response = Util.ComputeFetch(url, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../site-packages/compute_rhino3d/Util.py", line 35, in ComputeFetch
return r.json()
^^^^^^^^
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 2 column 1 (char 2)
The response is a JsonDecodeError but that’s not very helpful.
Under that error it’s a standard 500 “Internal Server Error” html page with no json payload,
so it can’t be serialized .
Compute Liveness
❯ curl -H "RhinoComputeKey: $KEY" $COMPUTE_URL/activechildren
5⏎
Logs
In the production server, I can see logs and the 500 errors as expected:
# C:\inetpub\logs\LogFiles\W3SVC2
...
2025-07-25 20:42:28 10.138.0.5 POST /grasshopper - 80 - 34.125.14.33 compute.rhino3d.py/0.12.2 - 500 0 0 32
2025-07-25 20:43:30 10.138.0.5 POST /grasshopper - 80 - 34.125.14.33 compute.rhino3d.py/0.12.2 - 500 0 0 30
and here:
# C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\rhino.compute\logs
RC [20:41:52 INF] Max concurrent requests = 0
RC [20:42:28 ERR] HTTP POST /grasshopper responded 500 in 4.3887 ms
RC [20:42:52 INF] Max concurrent requests = 1
RC [20:43:30 ERR] HTTP POST /grasshopper responded 500 in 2.7354 ms
RC [20:43:52 INF] Max concurrent requests = 1
These confirm the 500 error but do not provide any of the internal error details.
Is there any other log files I can look at to know more about the root cause?
Is there a way to enable verbose logging for compute or compute.geometry?
(didn’t see anything here - Rhino - Deployment to Production Servers)
I also tried calling via the hops component but was not able due to the issue reported here
PS: @AndyPayne





