zed-industries/zed · warning · Error
Message params.options is undefined: ${JSON.stringify(messag
Error message
Message params.options is undefined: ${JSON.stringify(message)} What it means
For github.com URLs the importer destructures the path as [owner, repo, kind, reference, file_path..]. If the URL has fewer than four path segments after the host, the slice pattern fails and the URL is rejected as not pointing at a blob file. This is the shape check for blob URLs.
Source
Thrown at crates/prettier/src/prettier_server.js:170
throw new Error(`Message method is undefined: ${JSON.stringify(message)}`);
} else if (method == "initialized") {
return;
} else if (method === "shutdown") {
sendResponse({ result: {} });
} else if (method == "exit") {
process.exit(0);
}
if (id === undefined) {
throw new Error(`Message id is undefined: ${JSON.stringify(message)}`);
}
if (method === "prettier/format") {
if (params === undefined || params.text === undefined) {
throw new Error(`Message params.text is undefined: ${JSON.stringify(message)}`);
}
if (params.options === undefined) {
throw new Error(`Message params.options is undefined: ${JSON.stringify(message)}`);
}
let resolvedConfig = {};
if (params.options.filepath) {
resolvedConfig = (await prettier.prettier.resolveConfig(params.options.filepath, { editorconfig: true })) || {};
if (params.options.ignorePath) {
const fileInfo = await prettier.prettier.getFileInfo(params.options.filepath, {
ignorePath: params.options.ignorePath,
});
if (fileInfo.ignored) {
process.stderr.write(
`Ignoring file '${params.options.filepath}' based on rules in '${params.options.ignorePath}'\n`,
);
sendResponse({ id, result: { text: params.text } });
return;
}
}View on GitHub (pinned to f4178619ac)
Solutions
- Navigate to the .md file on github.com and copy the full blob URL of the form https://github.com/<owner>/<repo>/blob/<ref>/<path>/SKILL.md
- Make sure all five parts are present: owner, repo, 'blob', branch/tag/commit, and the file path
Example fix
# before https://github.com/acme/skills/blob/main # after https://github.com/acme/skills/blob/main/src/SKILL.md
Defensive patterns
Strategy: validation
Validate before calling
let segments: Vec<&str> = url.path_segments().map(Iterator::collect).unwrap_or_default(); ensure!(segments.len() >= 5, "Paste a GitHub blob URL that points to a .md file"); // owner, repo, blob, ref, path...
Type guard
fn has_blob_shape(url: &url::Url) -> bool {
url.path_segments()
.map(|s| s.count() >= 5)
.unwrap_or(false)
} Prevention
- Validate the five-part blob shape client-side before the import call
- Teach users to copy the URL while viewing the file, not the repo root
When it happens
Trigger: A github.com URL with too few path segments: github.com/owner, github.com/owner/repo, github.com/owner/repo/blob, github.com/owner/repo/blob/main — there is no file path after the reference.
Common situations: The user pasted the repo or directory page instead of the file page; the URL got truncated when copying; the user edited the URL by hand and dropped segments.
Related errors
- Unknown method: ${method}
- eval-cli binary not found at {binary}. Build it with: cargo
- Message params.text is undefined: ${JSON.stringify(message)}
- Message method is undefined: ${JSON.stringify(message)}
- Message id is undefined: ${JSON.stringify(message)}
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/58ddf61befcaab98.
Report an issue: GitHub.