➜ global-images git:(feat/server_team) ✗ docker logs -f tdai-proxy
[config] loaded /data/config.yaml (top-level sections: server,upstream,log,tdai,skill,auth,sessionInit,costGuard,injection,redis)
26-08-14 09:45:18.648 INFO langfuse.disabled {"reason":"config not complete"}
26-08-14 09:45:18.649 INFO auth.init {"url":"http://memory-core:8420"}
[storage] activated sqlite backend
26-08-14 09:45:18.659 INFO server.starting {"host":"0.0.0.0","port":8096,"upstream":"https://api.deepseek.com/anthropic","logFile":"(disabled)","logLevel":"info","opik":"disabled","langfuse":"disabled","clickhouse":"disabled","costGuard":"disabled","rateLimit":"1000000 TPM / 100 QPM","sessionInit":"enabled","injection":"skill,knowledge,tdai-memory","tdai":"http://memory-core:8420","coreSkill":"http://memory-core:8420","skillRuntime":"allowLlmWrite=false","auth":"http://memory-core:8420","systemUsers":"disabled"}
26-08-14 09:45:18.664 INFO server.listening {"address":"0.0.0.0","port":8096}
26-08-14 09:45:18.890 WARN connectivity.check {"result":"some_failed","upstream":"ok (225ms)","auth":"ok (18ms)","creditReport":"FAIL: fetch failed"}
[identity] userId=? keyId=0ec79b66 sessionId=none wechatId=none user=? ws=? proxyToken=none custom=[x-app,x-claude-code-session-id,x-stainless-arch,x-stainless-lang,x-stainless-os,x-stainless-package-version,x-stainless-retry-count,x-stainless-runtime,x-stainless-runtime-version,x-stainless-timeout]
[debug-cc] x-claude-code-session-id=7240fe95-120f-4259-9892-69d2107bbbeb x-app=cli
[injection-debug] conversationId=7240fe95-120f-4259-9892-69d2107bbbeb sessionKey=7240fe95-120f-4259-9892-69d2107bbbeb userId=usr-00329t8my3 agentSource=claude-code sessionInitEnabled=true injectionEnabled=true injectors=["skill","knowledge","tdai-memory"] injectedSkipped=false
[cache] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb miss (no bindingRepo) → history-scan
[session-init:cc] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb state=none → uninitialized
[session-init:cc] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb user=usr-00329t8my3 → pending_asset_confirm (teams=1)
[identity] userId=? keyId=0ec79b66 sessionId=none wechatId=none user=? ws=? proxyToken=none custom=[x-app,x-claude-code-session-id,x-stainless-arch,x-stainless-lang,x-stainless-os,x-stainless-package-version,x-stainless-retry-count,x-stainless-runtime,x-stainless-runtime-version,x-stainless-timeout]
[debug-cc] x-claude-code-session-id=7240fe95-120f-4259-9892-69d2107bbbeb x-app=cli
[injection-debug] conversationId=7240fe95-120f-4259-9892-69d2107bbbeb sessionKey=7240fe95-120f-4259-9892-69d2107bbbeb userId=usr-00329t8my3 agentSource=claude-code sessionInitEnabled=true injectionEnabled=true injectors=["skill","knowledge","tdai-memory"] injectedSkipped=false
[session-recover] claude-code:7240fe95-120f-4259-9892-69d2107bbbeb L2a hit status=pending_asset_confirm (agent=-, task=-)
[cache] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb L2a hit → promote L1 (override stale L1)
[session-init:cc:debug] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb pending_asset_confirm lastUserText="Your questions have been answered: \"本次对话是否要关联团队资产?\"=\"是,关联团队资产\". You can now continue with these answers in mind." choice=true
[session-init:cc] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb auto-select single team=team-003gyfltl9
[session-init:cc] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb team=team-003gyfltl9 auto-select single agent=agt-060cir3ka6
[session-init:cc] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb agent=agt-060cir3ka6 auto-select single task=task-1fn1nub0sw
[session-init:cc] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb → initialized agent=agt-060cir3ka6 task=task-1fn1nub0sw team=team-003gyfltl9 user=usr-00329t8my3
[session-init:cc] session=claude-code:7240fe95-120f-4259-9892-69d2107bbbeb processed: 4 msgs, ctx=Y/Y protocol=anthropic systemAppend=Y final=[user,system,assistant,user]
[injection-debug] initResult session=7240fe95-120f-4259-9892-69d2107bbbeb intercepted=false bypassed=undefined justRegistered=true hasSessionInfo=true hasAgentDetail=true
[asset-capability] user=usr-00329t8my3 flags={"skill":true,"llm_wiki":true,"code_graph":true,"chat_memory":true}
[injection] injection.externalGatewayUrl not set — falling back to http://172.18.0.4:8096. This causes hook cache thrashing + upstream KV-cache misses in multi-node deployments; set injection.externalGatewayUrl to the shared gateway domain (e.g. https://gateway.example.com).
...
26-08-14 09:46:40.173 INFO injection.pipeline.done {"traceId":"019fffaa","protocol":"anthropic","agentSource":"claude-code","durationMs":18,"hookCount":4,"totalBlockCount":3,"errorCount":0}
26-08-14 09:46:40.174 WARN joinUrl.fallback {"requestPath":"/messages","endpoint":"/messages"}
08-14 09:46:40.174 [019fffaa] → REQ model=deepseek-v4-flash msgs=3 stream=true
08-14 09:46:40.175 [019fffaa] → FORWARD upstream=https://api.deepseek.com/anthropic
26-08-14 09:46:40.176 WARN rate_limit.fail_open {"instanceId":"default","modelId":"deepseek-v4-flash","reason":"redis_unavailable"}
08-14 09:46:40.635 [019fffaa] ← FORWARD status=400 460ms
26-08-14 09:46:40.638 ERROR pipeline.error {"requestId":"[019fffaa]","stage":"UPSTREAM_4xx","error":"status=400 body={\"error\":{\"message\":\"The `content[].thinking` in the thinking mode must be passed back to the API.\",\"type\":\"invalid_request_error\",\"param\":null,\"code\":\"invalid_request_error\"}}","error.message":"status=400 body={\"error\":{\"message\":\"The `content[].thinking` in the thinking mode must be passed back to the API.\",\"type\":\"invalid_request_error\",\"param\":null,\"code\":\"invalid_request_error\"}}","error.name":"Error"}
08-14 09:46:40.639 [019fffaa] ✗ UPSTREAM_4xx status=400 body={"error":{"message":"The `content[].thinking` in the thinking mode must be passed back to the API.","type":"invalid_request_error","param":null,"code":"invalid_request_error"}}
08-14 09:46:40.641 [019fffaa] ✓ STREAM done (no usage extracted)
08-14 09:46:40.641 [019fffaa] ← DONE total=467ms
Claude Code Version:
2.1.232
Plugin Version:
2.0.0
Operating System:
MacOS 26.4 (25E246)
Describe the bug:
content[].thinkingin the thinking mode must be passed back to the API.Expected behavior:
Avoid 400 error
Error Logs / Screenshots :
ScrreenShot

Error Logs