Submission blocked by hook - ERROR_HOOKS_BLOCKED (Session initialization failed: 400)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Request ID: 4aed1ab5-07ef-4f1c-a775-533da1f34c87
{“error”:“ERROR_HOOKS_BLOCKED”,“details”:{“title”:“Submission blocked by hook”,“detail”:“Hook blocked with message: Hook error: Error: Session initialization failed: 400”,“additionalInfo”:{},“buttons”:,“planChoices”:}}
Hook blocked with message: Hook error: Error: Session initialization failed: 400

Steps to Reproduce

Open a new chat in Cursor IDE.

Ask the agent to run with my repository context enabled.

Wait for the response.

The request fails with ERROR_HOOKS_BLOCKED and Session initialization failed: 400.

Expected Behavior

The agent request should be processed successfully without the hook being blocked, and I should receive a normal response instead of this error.

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

Version: 2.4.27
VSCode Version: 1.105.1
Commit: 4f2b772756b8f609e1354b3063de282ccbe7a690
Date: 2026-01-31T21:24:58.143Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Darwin arm64 25.2.0

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, this is a known issue - Cursor is trying to execute hooks from the Claude Code configs (~/.claude/), and if there are plugins with a sessionStart hook, it results in this error.

The quickest solution is to disable the import in Cursor Settings > Rules, Skills, Subagents - there’s an option “Import skills from Claude Code,” turn it off.

Alternatively, you can check/delete:

  • ~/.claude/settings.json
  • ~/.claude/plugins/

After that, restart Cursor.

Let me know if it doesn’t help.

1 Like

Have same issue, no hooks.json in project or user root in .cursor folder. Started suddenly, now can’t work so having to use Codex and Claude Code.

안녕하세요. 한국분이시군요 ㅎㅎㅎ
저도 동일한 증상이 발현됐었어요.
해결한 방법을 공유드릴께요.

원인은 ~/.claude/settings.jsonenabledPlugins이 전역으로 선언되어있으면 위와 같이 Hook Error가 발생합니다.
이때 ~/.claude/settings.jsonenabledPlugins는 모두 제거하고 각각의 프로젝트 루트의 .claude/settings.local.json 또는 settings.json으로 enabledPlugins를 옮겨야 Hook Error가 해결됩니다.

Err:

Sharing the solution

The cause is that if enabledPlugins is declared globally in ~/.claude/settings.json, the Hook Error occurs as described above. To resolve this Hook Error, remove all entries from enabledPlugins in ~/.claude/settings.json and move them to either .claude/settings.local.json or settings.json within each project’s root directory.