import { TextField } from "@opencode-ai/ui/text-field" import { Logo } from "@opencode-ai/ui/logo" import { Component } from "solid-js" import { usePlatform } from "@/context/platform" import { Icon } from "@opencode-ai/ui/icon" export type InitError = { name: string data: Record } function formatError(error: InitError | undefined): string { if (!error) return "Unknown error" const data = error.data switch (error.name) { case "MCPFailed": return `MCP server "${data.name}" failed. Note, opencode does not support MCP authentication yet.` case "ProviderModelNotFoundError": { const { providerID, modelID, suggestions } = data as { providerID: string modelID: string suggestions?: string[] } return [ `Model not found: ${providerID}/${modelID}`, ...(Array.isArray(suggestions) && suggestions.length ? ["Did you mean: " + suggestions.join(", ")] : []), `Check your config (opencode.json) provider/model names`, ].join("\n") } case "ProviderInitError": return `Failed to initialize provider "${data.providerID}". Check credentials and configuration.` case "ConfigJsonError": return `Config file at ${data.path} is not valid JSON(C)` + (data.message ? `: ${data.message}` : "") case "ConfigDirectoryTypoError": return `Directory "${data.dir}" in ${data.path} is not valid. Rename the directory to "${data.suggestion}" or remove it. This is a common typo.` case "ConfigFrontmatterError": return `Failed to parse frontmatter in ${data.path}:\n${data.message}` case "ConfigInvalidError": { const issues = Array.isArray(data.issues) ? data.issues.map( (issue: { message: string; path: string[] }) => "↳ " + issue.message + " " + issue.path.join("."), ) : [] return [`Config file at ${data.path} is invalid` + (data.message ? `: ${data.message}` : ""), ...issues].join( "\n", ) } case "UnknownError": return String(data.message) default: return data.message ? String(data.message) : JSON.stringify(data, null, 2) } } interface ErrorPageProps { error: InitError | undefined } export const ErrorPage: Component = (props) => { const platform = usePlatform() return (

Something went wrong

An error occurred while loading the application.

Please report this error to the OpenCode team
) }