zed-industries/zed · warning · Error
Message params.text is undefined: ${JSON.stringify(message)}
Error message
Message params.text is undefined: ${JSON.stringify(message)} What it means
github_raw_url accepts only two hosts: github.com (blob URLs) and raw.githubusercontent.com (raw file URLs). Any other host in the pasted URL is rejected with this message before parsing continues. It is a whitelist check in the skill-import input validation.
Source
Thrown at crates/prettier/src/prettier_server.js:167
async function handleMessage(message, prettier) {
const { method, id, params } = message;
if (method === undefined) {
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 } });View on GitHub (pinned to f4178619ac)
Solutions
- Open the file inside its GitHub repository and copy the github.com blob URL
- For raw links, use the Raw button on the GitHub file page, which yields a raw.githubusercontent.com URL
- If the file is only on another forge, move or mirror it to github.com first
Example fix
# before https://gist.github.com/acme/abc123/repo # after https://github.com/acme/skills/blob/main/SKILL.md
Defensive patterns
Strategy: validation
Validate before calling
let url = url::Url::parse(input.trim())?;
ensure!(
matches!(url.host_str(), Some("github.com") | Some("raw.githubusercontent.com")),
"Paste a GitHub .md URL"
); Type guard
fn is_github_host(input: &str) -> bool {
url::Url::parse(input.trim())
.ok()
.and_then(|u| u.host_str().map(|h| h == "github.com" || h == "raw.githubusercontent.com"))
.unwrap_or(false)
} Prevention
- Whitelist github.com and raw.githubusercontent.com in the UI hint so users self-correct before submitting
- For gists, link the underlying repo file instead of the gist page
When it happens
Trigger: The URL host is neither github.com nor raw.githubusercontent.com: gist.github.com/..., gist.githubusercontent.com/..., gitlab.com/..., cdn.jsdelivr.net/..., bitbucket.org/...
Common situations: The skill file lives in a GitHub gist, on GitLab, or behind a CDN/mirror; the user pasted the repo home page of a different forge; the URL was copied from a docs site that embeds GitHub content.
Related errors
- Message params.options is undefined: ${JSON.stringify(messag
- Unknown method: ${method}
- eval-cli binary not found at {binary}. Build it with: cargo
- 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/c82d424dca69781f.
Report an issue: GitHub.