pardeike / pardeike/RimBridgeServer

`games_call_tool rimworld/list_debug_action_children` causes exception on main menu

Open
#9 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
34
Forks
8
Avg merge
1m
Merged PRs (30d)
1

Description

Just based on the exception I'd guess it's because RimBridgeServer isn't differentiating between debug actions marked with AllowedGameStates.Playing vs ones marked with AllowedGameStates.Entry, only the latter of which can be used on the game's main menu.

My mod has a debug action that works on the main menu from in-game, so Claude was trying to figure out how to execute that one, but ended up, through the rimworld/list_debug_action_children tool, causing an exception in the Verse.DebugActionsIncidents.RitualSiegeWithSpecifics debug action.

Exception extracted from chat log:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.DebugActionsIncidents.RitualSiegeWithSpecifics () [0x0000b] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 
  at LudeonTK.DebugActionNode.TrySetupChildren () [0x00010] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 
  at RimBridgeServer.RimWorldDebugActions.PrepareNode (LudeonTK.DebugActionNode node) [0x00004] in <46e27953d7324877a067e7458bf2c0d5>:0 
  at RimBridgeServer.RimWorldDebugActions.GetChildren (LudeonTK.DebugActionNode node, System.Boolean includeHidden) [0x0004b] in <46e27953d7324877a067e7458bf2c0d5>:0 
  at RimBridgeServer.RimWorldDebugActions.ListDebugActionChildrenResponse (System.String path, System.Boolean includeHidden) [0x00015] in <46e27953d7324877a067e7458bf2c0d5>:0 
  at RimBridgeServer.DebugActionsCapabilityModule.ListDebugActionChildren (System.String path, System.Boolean includeHidden) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 
(wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
   --- End of inner exception stack trace ---
  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
  at RimBridgeServer.BuiltInCapabilityModuleProvider+<>c__DisplayClass12_0.<InvokeAsync>b__0 () [0x00027] in <46e27953d7324877a067e7458bf2c0d5>:0 
  at RimBridgeServer.RimBridgeMainThread+MainThreadWorkItem`1[T].ExecuteIfPending () [0x0001d] in <46e27953d7324877a067e7458bf2c0d5>:0 
--- End of stack trace from previous location where exception was thrown ---
 [0x0000c] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
 [0x0003e] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
 [0x00028] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
 [0x00008] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
 [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 
  at RimBridgeServer.RimBridgeMainThread.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x0004c] in <46e27953d7324877a067e7458bf2c0d5>:0 
  at RimBridgeServer.MainThreadDispatcher.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 
  at RimBridgeServer.Core.OperationRunner.Run (System.Func`1[TResult] func, RimBridgeServer.Core.OperationExecutionOptions options) [0x0008a] in <5f081ec2db344499a3cc73ddc96ec4ef>:0 
Relevant excerpt from Claude's chat log
{"parentUuid":"e3fd1c8e-3658-43dd-a8cc-078563e92a68","isSidechain":false,"message":{"model":"claude-sonnet-5","id":"msg_011Cephk5ZmqAGNHGaU9diVB","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Bxshgwd5Jxke7dmqorZA2y","name":"mcp__gabs__games_call_tool","input":{"gameId":"DebugAssistance","tool":"rimworld/list_debug_action_children","arguments":{"path":"Actions"}},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2,"cache_creation_input_tokens":548,"cache_read_input_tokens":174225,"output_tokens":224,"output_tokens_details":{"thinking_tokens":91},"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":548,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":224,"cache_read_input_tokens":174225,"cache_creation_input_tokens":548,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":548},"type":"message"}],"speed":"standard"},"diagnostics":null},"apiBlockIndex":1,"requestId":"req_011Cephk4YzzBqUkdaBkTaGq","attributionMcpServer":"gabs","attributionMcpTool":"games_tool_detail","type":"assistant","uuid":"0743ca9b-0626-4f9d-b0ed-7a6fb5f17d42","timestamp":"2026-09-07T20:23:16.350Z","effort":"high","userType":"external","entrypoint":"claude-vscode","cwd":"/home/alex/Documents/Projects/RimWorld/DebugAssistance","sessionId":"48e177d2-b733-45f4-89e7-32c6a09c683f","version":"2.1.263","gitBranch":"main","slug":"rosy-leaping-parrot"}
{"parentUuid":"0743ca9b-0626-4f9d-b0ed-7a6fb5f17d42","isSidechain":false,"promptId":"bf5e8a3c-5809-440f-a245-e9795fc23b20","type":"user","message":{"role":"user","content":[{"tool_use_id":"toolu_01Bxshgwd5Jxke7dmqorZA2y","type":"tool_result","content":"{\"exception\":\"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object\\n  at Verse.DebugActionsIncidents.RitualSiegeWithSpecifics () [0x0000b] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at LudeonTK.DebugActionNode.TrySetupChildren () [0x00010] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at RimBridgeServer.RimWorldDebugActions.PrepareNode (LudeonTK.DebugActionNode node) [0x00004] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.GetChildren (LudeonTK.DebugActionNode node, System.Boolean includeHidden) [0x0004b] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.ListDebugActionChildrenResponse (System.String path, System.Boolean includeHidden) [0x00015] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.DebugActionsCapabilityModule.ListDebugActionChildren (System.String path, System.Boolean includeHidden) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n(wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n   --- End of inner exception stack trace ---\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.BuiltInCapabilityModuleProvider+<>c__DisplayClass12_0.<InvokeAsync>b__0 () [0x00027] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimBridgeMainThread+MainThreadWorkItem`1[T].ExecuteIfPending () [0x0001d] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n--- End of stack trace from previous location where exception was thrown ---\\n [0x0000c] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x0003e] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00028] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00008] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.RimBridgeMainThread.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x0004c] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.MainThreadDispatcher.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.Core.OperationRunner.Run (System.Func`1[TResult] func, RimBridgeServer.Core.OperationExecutionOptions options) [0x0008a] in <5f081ec2db344499a3cc73ddc96ec4ef>:0 \",\"message\":\"Object reference not set to an instance of an object\",\"operation\":{\"CapabilityId\":\"rimbridge.core/debug_actions/list-debug-action-children\",\"CompletedAtUtc\":\"2026-09-07T20:23:17.00047+00:00\",\"DurationMs\":643,\"Error\":{\"Code\":\"capability.failed\",\"Details\":\"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object\\n  at Verse.DebugActionsIncidents.RitualSiegeWithSpecifics () [0x0000b] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at LudeonTK.DebugActionNode.TrySetupChildren () [0x00010] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at RimBridgeServer.RimWorldDebugActions.PrepareNode (LudeonTK.DebugActionNode node) [0x00004] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.GetChildren (LudeonTK.DebugActionNode node, System.Boolean includeHidden) [0x0004b] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.ListDebugActionChildrenResponse (System.String path, System.Boolean includeHidden) [0x00015] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.DebugActionsCapabilityModule.ListDebugActionChildren (System.String path, System.Boolean includeHidden) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n(wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n   --- End of inner exception stack trace ---\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.BuiltInCapabilityModuleProvider+<>c__DisplayClass12_0.<InvokeAsync>b__0 () [0x00027] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimBridgeMainThread+MainThreadWorkItem`1[T].ExecuteIfPending () [0x0001d] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n--- End of stack trace from previous location where exception was thrown ---\\n [0x0000c] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x0003e] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00028] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00008] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.RimBridgeMainThread.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x0004c] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.MainThreadDispatcher.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.Core.OperationRunner.Run (System.Func`1[TResult] func, RimBridgeServer.Core.OperationExecutionOptions options) [0x0008a] in <5f081ec2db344499a3cc73ddc96ec4ef>:0 \",\"ExceptionType\":\"System.NullReferenceException\",\"Message\":\"Object reference not set to an instance of an object\"},\"HasResult\":false,\"Metadata\":{},\"OperationId\":\"op_ae01f9e39e8b45eda536c1cc09c6c4b1\",\"Result\":null,\"ResultWasTruncated\":false,\"StartedAtUtc\":\"2026-09-07T20:23:16.356707+00:00\",\"Status\":3,\"Success\":false,\"Warnings\":[]},\"success\":false}"}]},"uuid":"8fba8e16-6740-419c-ae45-52acb8fa1d7b","timestamp":"2026-09-07T20:23:17.042Z","toolUseResult":"{\"exception\":\"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object\\n  at Verse.DebugActionsIncidents.RitualSiegeWithSpecifics () [0x0000b] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at LudeonTK.DebugActionNode.TrySetupChildren () [0x00010] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at RimBridgeServer.RimWorldDebugActions.PrepareNode (LudeonTK.DebugActionNode node) [0x00004] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.GetChildren (LudeonTK.DebugActionNode node, System.Boolean includeHidden) [0x0004b] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.ListDebugActionChildrenResponse (System.String path, System.Boolean includeHidden) [0x00015] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.DebugActionsCapabilityModule.ListDebugActionChildren (System.String path, System.Boolean includeHidden) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n(wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n   --- End of inner exception stack trace ---\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.BuiltInCapabilityModuleProvider+<>c__DisplayClass12_0.<InvokeAsync>b__0 () [0x00027] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimBridgeMainThread+MainThreadWorkItem`1[T].ExecuteIfPending () [0x0001d] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n--- End of stack trace from previous location where exception was thrown ---\\n [0x0000c] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x0003e] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00028] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00008] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.RimBridgeMainThread.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x0004c] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.MainThreadDispatcher.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.Core.OperationRunner.Run (System.Func`1[TResult] func, RimBridgeServer.Core.OperationExecutionOptions options) [0x0008a] in <5f081ec2db344499a3cc73ddc96ec4ef>:0 \",\"message\":\"Object reference not set to an instance of an object\",\"operation\":{\"CapabilityId\":\"rimbridge.core/debug_actions/list-debug-action-children\",\"CompletedAtUtc\":\"2026-09-07T20:23:17.00047+00:00\",\"DurationMs\":643,\"Error\":{\"Code\":\"capability.failed\",\"Details\":\"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object\\n  at Verse.DebugActionsIncidents.RitualSiegeWithSpecifics () [0x0000b] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at LudeonTK.DebugActionNode.TrySetupChildren () [0x00010] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \\n  at RimBridgeServer.RimWorldDebugActions.PrepareNode (LudeonTK.DebugActionNode node) [0x00004] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.GetChildren (LudeonTK.DebugActionNode node, System.Boolean includeHidden) [0x0004b] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimWorldDebugActions.ListDebugActionChildrenResponse (System.String path, System.Boolean includeHidden) [0x00015] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.DebugActionsCapabilityModule.ListDebugActionChildren (System.String path, System.Boolean includeHidden) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n(wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n   --- End of inner exception stack trace ---\\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.BuiltInCapabilityModuleProvider+<>c__DisplayClass12_0.<InvokeAsync>b__0 () [0x00027] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.RimBridgeMainThread+MainThreadWorkItem`1[T].ExecuteIfPending () [0x0001d] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n--- End of stack trace from previous location where exception was thrown ---\\n [0x0000c] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x0003e] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00028] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00008] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \\n  at RimBridgeServer.RimBridgeMainThread.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x0004c] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.MainThreadDispatcher.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \\n  at RimBridgeServer.Core.OperationRunner.Run (System.Func`1[TResult] func, RimBridgeServer.Core.OperationExecutionOptions options) [0x0008a] in <5f081ec2db344499a3cc73ddc96ec4ef>:0 \",\"ExceptionType\":\"System.NullReferenceException\",\"Message\":\"Object reference not set to an instance of an object\"},\"HasResult\":false,\"Metadata\":{},\"OperationId\":\"op_ae01f9e39e8b45eda536c1cc09c6c4b1\",\"Result\":null,\"ResultWasTruncated\":false,\"StartedAtUtc\":\"2026-09-07T20:23:16.356707+00:00\",\"Status\":3,\"Success\":false,\"Warnings\":[]},\"success\":false}","mcpMeta":{"structuredContent":{"exception":"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object\n  at Verse.DebugActionsIncidents.RitualSiegeWithSpecifics () [0x0000b] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \n  at LudeonTK.DebugActionNode.TrySetupChildren () [0x00010] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \n  at RimBridgeServer.RimWorldDebugActions.PrepareNode (LudeonTK.DebugActionNode node) [0x00004] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.RimWorldDebugActions.GetChildren (LudeonTK.DebugActionNode node, System.Boolean includeHidden) [0x0004b] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.RimWorldDebugActions.ListDebugActionChildrenResponse (System.String path, System.Boolean includeHidden) [0x00015] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.DebugActionsCapabilityModule.ListDebugActionChildren (System.String path, System.Boolean includeHidden) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \n(wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n   --- End of inner exception stack trace ---\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n  at RimBridgeServer.BuiltInCapabilityModuleProvider+<>c__DisplayClass12_0.<InvokeAsync>b__0 () [0x00027] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.RimBridgeMainThread+MainThreadWorkItem`1[T].ExecuteIfPending () [0x0001d] in <46e27953d7324877a067e7458bf2c0d5>:0 \n--- End of stack trace from previous location where exception was thrown ---\n [0x0000c] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x0003e] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x00028] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x00008] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n  at RimBridgeServer.RimBridgeMainThread.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x0004c] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.MainThreadDispatcher.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.Core.OperationRunner.Run (System.Func`1[TResult] func, RimBridgeServer.Core.OperationExecutionOptions options) [0x0008a] in <5f081ec2db344499a3cc73ddc96ec4ef>:0 ","message":"Object reference not set to an instance of an object","operation":{"CapabilityId":"rimbridge.core/debug_actions/list-debug-action-children","CompletedAtUtc":"2026-09-07T20:23:17.00047+00:00","DurationMs":643,"Error":{"Code":"capability.failed","Details":"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object\n  at Verse.DebugActionsIncidents.RitualSiegeWithSpecifics () [0x0000b] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \n  at LudeonTK.DebugActionNode.TrySetupChildren () [0x00010] in <b4d967f0d45a413fbb0223eefee4f2ae>:0 \n  at RimBridgeServer.RimWorldDebugActions.PrepareNode (LudeonTK.DebugActionNode node) [0x00004] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.RimWorldDebugActions.GetChildren (LudeonTK.DebugActionNode node, System.Boolean includeHidden) [0x0004b] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.RimWorldDebugActions.ListDebugActionChildrenResponse (System.String path, System.Boolean includeHidden) [0x00015] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.DebugActionsCapabilityModule.ListDebugActionChildren (System.String path, System.Boolean includeHidden) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \n(wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n   --- End of inner exception stack trace ---\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n  at RimBridgeServer.BuiltInCapabilityModuleProvider+<>c__DisplayClass12_0.<InvokeAsync>b__0 () [0x00027] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.RimBridgeMainThread+MainThreadWorkItem`1[T].ExecuteIfPending () [0x0001d] in <46e27953d7324877a067e7458bf2c0d5>:0 \n--- End of stack trace from previous location where exception was thrown ---\n [0x0000c] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x0003e] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x00028] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x00008] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n [0x00000] in <e3b07672ffbd43c1838e1ebbe94cbdf5>:0 \n  at RimBridgeServer.RimBridgeMainThread.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x0004c] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.MainThreadDispatcher.Invoke[T] (System.Func`1[TResult] func, System.Int32 timeoutMs) [0x00000] in <46e27953d7324877a067e7458bf2c0d5>:0 \n  at RimBridgeServer.Core.OperationRunner.Run (System.Func`1[TResult] func, RimBridgeServer.Core.OperationExecutionOptions options) [0x0008a] in <5f081ec2db344499a3cc73ddc96ec4ef>:0 ","ExceptionType":"System.NullReferenceException","Message":"Object reference not set to an instance of an object"},"HasResult":false,"Metadata":{},"OperationId":"op_ae01f9e39e8b45eda536c1cc09c6c4b1","Result":null,"ResultWasTruncated":false,"StartedAtUtc":"2026-09-07T20:23:16.356707+00:00","Status":3,"Success":false,"Warnings":[]},"success":false}},"sourceToolAssistantUUID":"0743ca9b-0626-4f9d-b0ed-7a6fb5f17d42","userType":"external","entrypoint":"claude-vscode","cwd":"/home/alex/Documents/Projects/RimWorld/DebugAssistance","sessionId":"48e177d2-b733-45f4-89e7-32c6a09c683f","version":"2.1.263","gitBranch":"main","slug":"rosy-leaping-parrot"}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with RimWorldDebugActions.PrepareNode and GetChildren, reached through ListDebugActionChildrenResponse for the rimworld/list_debug_action_children tool. Reproduce the Actions listing from RimWorld's main menu and inspect how AllowedGameStates.Playing and AllowedGameStates.Entry actions are handled; done means the listing no longer invokes invalid actions or raises the reported exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.