Skip to content

Executor locks up on large loops, requires full MCP server reinstall to recover #12

Description

@BasilAtBentley

Description

Running a large nested loop off of API calls causes the executor to become permanently unresponsive. This is inconsistent on a small model it
returns a clean timeout error, but on a larger model it jams permanently. Restarting Claude Desktop does not fix it. A full MCP server reinstall is required to recover.

Environment

  • STAAD.Pro: 25.00.00.539
  • OpenSTAAD MCP Server

Steps to Reproduce

The permanent lockup was reproduced on a larger model (over 2,400 nodes) which can be shared privately with the dev team on request.

geo = staad.Geometry
out = staad.Output

node_ids  = list(geo.GetNodeList())
plate_ids = list(geo.GetPlateList())

for nid in node_ids:
    for pid in plate_ids:
        try:
            r = out.GetPlateCornerForces(pid, nid, 1)
        except:
            pass

Expected Behaviour

Script always returns a clean timeout error regardless of model size.

Actual Behaviour

  • Small model (176,400 calls): returns "Code execution timed out" recovers cleanly
  • Large model (850,000 calls): hangs permanently full reinstall required

Impact

The Exception class issue recovery from a long-running script is unreliable. On a large model it leaves the executor in a broken state with no way to recover short of reinstalling the MCP server.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions