Skip to content

Get Error Details

get-error-details · Query · Server · Error reporting

Returns temporary local diagnostic details for an unexpected tool failure. The result may contain paths and user-authored identifiers, is intended only for the trusted local agent, and must never be submitted externally.

Availability: Built in and published in every operational mode.

Generated from Roslyn Workbench MCP 1.0.1 (1.0.1).

Behaviour annotations

Annotation Value
destructiveHint false
idempotentHint true
openWorldHint false
readOnlyHint true
title "Get Error Details"

Request

Property Type Required Description
correlationId string Yes Correlation identifier returned with the failed tool invocation.

Response

Success response

Property Type Required Description
ok boolean constant (true) Yes Whether the tool invocation succeeded.
data object | null Yes Tool-specific result payload.
snapshot object No Exact immutable workspace snapshot associated with the result, when available.
warnings array No Non-fatal warnings the agent should consider.

Error response

Property Type Required Description
ok boolean constant (false) Yes Whether the tool invocation succeeded.
error object Yes Structured error details when the invocation failed.
continuation oneOf No Action the agent should take before retrying or continuing.
diagnostics array No Diagnostics that explain the failed invocation.
warnings array No Non-fatal warnings the agent should consider.

Error response

Property Type Required Description
ok boolean constant (false) Yes Whether the tool invocation succeeded.
error object Yes Structured error details when the invocation failed.
diagnostics object Yes Diagnostics that explain the failed invocation.
reporting object No Error-reporting workflow available for an unhandled failure.

Continuations and required actions

A response may include a structured continuation at the following schema location. Follow its tool call or user-action instruction instead of guessing how to continue:

  • $/oneOf/1/properties/continuation
Complete input schema
{
  "type": "object",
  "properties": {
    "correlationId": {
      "description": "Correlation identifier returned with the failed tool invocation.",
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "correlationId"
  ]
}
Complete output schema
{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "ok",
        "data"
      ],
      "properties": {
        "ok": {
          "const": true,
          "description": "Whether the tool invocation succeeded."
        },
        "data": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "sensitivity": {
              "description": "Sensitivity classification applied to the captured error details.",
              "type": "string"
            },
            "safeForExternalSubmission": {
              "description": "Whether the captured details are safe to submit outside the local process.",
              "type": "boolean"
            },
            "error": {
              "description": "Captured diagnostic record for the failed tool invocation.",
              "type": "object",
              "properties": {
                "correlationId": {
                  "description": "Correlation identifier assigned to the captured failure.",
                  "type": "string",
                  "format": "uuid"
                },
                "failureTime": {
                  "description": "Time at which the tool invocation failed.",
                  "type": "string",
                  "format": "date-time"
                },
                "expiresAt": {
                  "description": "Time at which this locally retained error record expires.",
                  "type": "string",
                  "format": "date-time"
                },
                "toolName": {
                  "description": "MCP tool that failed.",
                  "type": "string"
                },
                "executionFamily": {
                  "description": "Execution path used by the failed tool, such as server, plugin, or Code Action.",
                  "type": "string"
                },
                "pluginClassification": {
                  "description": "Plugin ownership classification when the failed tool was plugin-backed.",
                  "type": "string"
                },
                "durationMilliseconds": {
                  "description": "Tool execution duration in milliseconds before failure.",
                  "type": "integer"
                },
                "cancellationRequested": {
                  "description": "Whether cancellation had been requested when the failure occurred.",
                  "type": "boolean"
                },
                "exceptions": {
                  "description": "Captured exception chain for the failure.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "component": {
                        "description": "Roslyn Workbench component in which the exception originated.",
                        "type": "string",
                        "enum": [
                          "Unknown",
                          "RoslynWorkbench",
                          "Roslyn",
                          "DotNet"
                        ]
                      },
                      "type": {
                        "description": "Exception type name.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Exception message included with the user's consent.",
                        "type": "string"
                      },
                      "stackFrames": {
                        "description": "Diagnostic stack frames retained from the exception and classified by owning component.",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "component": {
                              "description": "Roslyn Workbench component that owns this frame.",
                              "type": "string",
                              "enum": [
                                "Unknown",
                                "RoslynWorkbench",
                                "Roslyn",
                                "DotNet"
                              ]
                            },
                            "assembly": {
                              "description": "Assembly name, when available.",
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "type": {
                              "description": "Declaring type name, when available.",
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "method": {
                              "description": "Method name, when available.",
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "file": {
                              "description": "First-party source file path recorded by symbols, when available.",
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "line": {
                              "description": "One-based source line number, when available.",
                              "type": [
                                "integer",
                                "null"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "required": [
                      "type",
                      "message"
                    ]
                  }
                },
                "workspace": {
                  "description": "Workspace context active during the failure, when available.",
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "workspaceId": {
                      "description": "Server-generated identifier of the workspace active during the failure.",
                      "type": "string",
                      "format": "uuid"
                    },
                    "workspaceEpoch": {
                      "description": "Workspace epoch active during the failure.",
                      "type": "integer"
                    },
                    "lifecycleState": {
                      "description": "Workspace lifecycle state at the time of failure.",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "projectCount": {
                      "description": "Number of loaded projects at the time of failure.",
                      "type": "integer"
                    },
                    "documentCount": {
                      "description": "Number of loaded documents at the time of failure.",
                      "type": "integer"
                    },
                    "transactionRevision": {
                      "description": "Active transaction revision at the time of failure, when applicable.",
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "serverVersion": {
                  "description": "Roslyn Workbench server version that captured the failure.",
                  "type": "string"
                },
                "roslynVersion": {
                  "description": "Roslyn version used by the server.",
                  "type": "string"
                },
                "dotNetVersion": {
                  "description": ".NET runtime version used by the server.",
                  "type": "string"
                },
                "operatingSystem": {
                  "description": "Operating system on which the server was running.",
                  "type": "string"
                },
                "processorArchitecture": {
                  "description": "Processor architecture of the server process.",
                  "type": "string"
                }
              },
              "required": [
                "correlationId",
                "failureTime",
                "expiresAt",
                "toolName",
                "executionFamily",
                "pluginClassification",
                "durationMilliseconds",
                "serverVersion",
                "roslynVersion",
                "dotNetVersion",
                "operatingSystem",
                "processorArchitecture"
              ]
            }
          },
          "required": [
            "error"
          ],
          "description": "Tool-specific result payload."
        },
        "snapshot": {
          "type": "object",
          "properties": {
            "workspaceId": {
              "type": "string",
              "format": "uuid"
            },
            "workspaceEpoch": {
              "type": "integer"
            },
            "snapshotId": {
              "type": "string",
              "format": "uuid"
            },
            "transactionRevision": {
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "required": [
            "workspaceId",
            "workspaceEpoch",
            "snapshotId",
            "transactionRevision"
          ],
          "description": "Exact immutable workspace snapshot associated with the result, when available."
        },
        "warnings": {
          "type": "array",
          "description": "Non-fatal warnings the agent should consider.",
          "items": {
            "$ref": "#/$defs/warningInfo"
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "error"
      ],
      "properties": {
        "ok": {
          "const": false,
          "description": "Whether the tool invocation succeeded."
        },
        "error": {
          "type": "object",
          "properties": {
            "code": {
              "description": "Stable machine-readable error code.",
              "type": "string"
            },
            "message": {
              "description": "Human-readable explanation of the failure.",
              "type": "string"
            },
            "correlationId": {
              "description": "Correlation identifier for matching the failure to server-side diagnostics, when available.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "code",
            "message"
          ],
          "description": "Structured error details when the invocation failed."
        },
        "continuation": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "tool",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "CallTool",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                },
                "tool": {
                  "type": "string",
                  "description": "Tool to call before continuing the original request.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "tools",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ChooseTool",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                },
                "tools": {
                  "type": "array",
                  "description": "Allowed tool choices from which the agent must select one.",
                  "minItems": 1,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "description": "Name of a tool the agent may choose.",
                    "minLength": 1
                  }
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "RetryRequest",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ReviseRequest",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ResolveExternally",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            }
          ],
          "description": "Action the agent should take before retrying or continuing."
        },
        "diagnostics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "description": "The diagnostic identifier.",
                "type": "string"
              },
              "severity": {
                "description": "The diagnostic severity.",
                "type": "string",
                "enum": [
                  "Hidden",
                  "Info",
                  "Warning",
                  "Error"
                ]
              },
              "message": {
                "description": "The diagnostic message.",
                "type": "string"
              },
              "location": {
                "description": "The optional source location of the diagnostic.",
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "document": {
                    "description": "The resolved document.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "documentId": {
                        "description": "The document identifier.",
                        "type": "string"
                      },
                      "path": {
                        "description": "The normalized document path.",
                        "type": "string"
                      },
                      "projectId": {
                        "description": "The owning project identifier.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "documentId",
                      "path",
                      "projectId"
                    ]
                  },
                  "span": {
                    "description": "The resolved text span.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "start": {
                        "description": "Zero-based UTF-16 offset.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 2147483647
                      },
                      "length": {
                        "description": "UTF-16 code-unit length.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 2147483647
                      }
                    }
                  },
                  "line": {
                    "description": "The one-based line number.",
                    "type": "integer"
                  },
                  "column": {
                    "description": "The one-based column number.",
                    "type": "integer"
                  },
                  "snapshot": {
                    "description": "The exact immutable workspace snapshot associated with this location.",
                    "type": "object",
                    "properties": {
                      "workspaceId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "workspaceEpoch": {
                        "type": "integer"
                      },
                      "snapshotId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "transactionRevision": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "workspaceId",
                      "workspaceEpoch",
                      "snapshotId",
                      "transactionRevision"
                    ]
                  },
                  "selector": {
                    "description": "The canonical selector that can resolve this source location again.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "span": {
                        "type": "object",
                        "properties": {
                          "document": {
                            "description": "Provide exactly one of path or documentId.",
                            "type": "object",
                            "properties": {
                              "project": {
                                "description": "Disambiguates documents with matching paths or IDs.",
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "properties": {
                                  "projectId": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "name": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "path": {
                                    "description": "Workspace-relative path.",
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "targetFramework": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "path": {
                                "description": "Workspace-relative path.",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "documentId": {
                                "description": "Workspace-local document ID.",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          },
                          "range": {
                            "description": "Zero-based UTF-16 range.",
                            "type": "object",
                            "properties": {
                              "start": {
                                "description": "Zero-based UTF-16 offset.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 2147483647
                              },
                              "length": {
                                "description": "UTF-16 code-unit length.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 2147483647
                              }
                            }
                          }
                        },
                        "required": [
                          "document",
                          "range"
                        ]
                      }
                    },
                    "required": [
                      "span"
                    ]
                  }
                },
                "required": [
                  "snapshot"
                ]
              }
            },
            "required": [
              "id",
              "message"
            ]
          },
          "description": "Diagnostics that explain the failed invocation."
        },
        "warnings": {
          "type": "array",
          "description": "Non-fatal warnings the agent should consider.",
          "items": {
            "$ref": "#/$defs/warningInfo"
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "error",
        "diagnostics"
      ],
      "properties": {
        "ok": {
          "const": false,
          "description": "Whether the tool invocation succeeded."
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message",
            "correlationId"
          ],
          "properties": {
            "code": {
              "const": "UnhandledException"
            },
            "message": {
              "const": "Tool execution failed."
            },
            "correlationId": {
              "type": "string",
              "format": "uuid"
            }
          },
          "description": "Structured error details when the invocation failed."
        },
        "diagnostics": {
          "type": "object",
          "required": [
            "detailsAvailable",
            "detailsTool"
          ],
          "properties": {
            "detailsAvailable": {
              "const": true
            },
            "detailsTool": {
              "const": "get-error-details"
            }
          },
          "description": "Diagnostics that explain the failed invocation."
        },
        "reporting": {
          "type": "object",
          "properties": {
            "state": {
              "type": "string",
              "enum": [
                "Available",
                "AlwaysApproved",
                "DisabledByConfiguration",
                "ApprovalUnavailable"
              ]
            },
            "canPrepare": {
              "type": "boolean"
            },
            "prepareTool": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "state"
          ],
          "description": "Error-reporting workflow available for an unhandled failure."
        }
      }
    }
  ],
  "$defs": {
    "warningInfo": {
      "type": "object",
      "properties": {
        "code": {
          "description": "The stable machine-readable warning code.",
          "type": "string"
        },
        "message": {
          "description": "The human-readable warning message.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}

Machine reference