Troubleshoot connection timeouts, authentication failures, untriggered Hooks, and extension loading issues.
This page helps troubleshoot issues related to Hooks, MCP servers, and plugins.
Before diving into specific components, rule out the two most common causes:
When a Hook is not triggered or behaves abnormally:
When an MCP server is not connected or tools are unavailable:
When a plugin is not loaded or components are missing:
First Checks
Before diving into specific components, rule out the two most common causes:
- Directory Trust: Untrusted workspaces will not load project-level settings, Hooks, MCP servers, and project-level Agents (Hooks are directly blocked in interactive sessions). When entering a directory for the first time, a trust prompt appears, allowing you to choose "this session only" or "remember" (written to
settings.local.json). You can also usepermissions.trustDirectoriesto permanently trust frequently used directories. See Permissions and Directory Trust. - Reload After Configuration Changes: Most extensions support hot reload, which is faster than restarting—
/mcp reload,/plugins reload,/skills reload,/agents reload. However, configuration items marked as "requires restart" still require restarting the CLI.
Hooks Issues
When a Hook is not triggered or behaves abnormally:
- Events and Matching: Ensure the event name bound to the Hook is correct, and that
matchercan match the target (empty or*matches all, exact values,|for multiple values, or regex). - Exit Codes:
commandtype Hooks use exit codes to control the flow—0for success,2to block (stderr is fed back to the Agent), and others for non-blocking errors. If a Hook unexpectedly blocks an operation, check if it returned2. - Input Parsing: Hooks receive JSON from stdin (including
session_id,cwd,hook_event_name, etc.). Ensure the script reads it correctly. - Executable Permissions: The script pointed to by
commandmust have executable permissions and the correct path. - Use
/hooksto view registered Hooks. - For the complete reference, see Hooks reference.
MCP Server Issues
When an MCP server is not connected or tools are unavailable:
- Use
/mcpto check the server connection status. - Commands and Paths: For stdio type, ensure
command,args, andcwdare correct, and the server can start independently. - Project-Level Approval: Project-level MCP servers require individual approval by default. Use
mcp.enableAllProjectMcpServersormcp.enabledProjectMcpServersto approve them. - Allowlist Restrictions: Check if it has been filtered out by
mcp.allowed/mcp.excluded,--allowed-mcp-server-names, or--strict-mcp-config. - Authentication: For HTTP/SSE types, ensure the authentication information in
headersis correct. - Timeouts: If the connection is slow, adjust the
timeoutfield. - MCP configuration items are marked as "requires restart". After modification, try
/mcp reloadfirst; if it still doesn't take effect, restart. - For the complete reference, see MCP reference.
Plugin Issues
When a plugin is not loaded or components are missing:
- Use
/pluginsto view installed plugins. - Manifest: The manifest is located at
.qoder-plugin/plugin.json(can be omitted); if declared, ensurenameis valid (kebab-case, no spaces). - Directory Structure: Components must be located in the agreed directories (
commands/,agents/,skills/,hooks/hooks.json,.mcp.json, etc.), or their paths must be explicitly declared in the manifest. - Security Restrictions: When
security.blockGitExtensionsis true, loading plugins from Git is blocked; whensecurity.allowedExtensionsis not empty, only matching sources are allowed. - For the complete reference, see Plugin Reference.
Next Steps
- Hooks reference: Hooks reference.
- MCP reference: MCP reference.
- Plugin reference: Plugin Reference.
- Loading issues: Memory, Skills, and Agent not loaded.