Troubleshooting — Error Scene Index¶
Real errors, real fixes. No fabricated stack traces.
DCO sign-off failed¶
Typical error:
DCO check failed
The sign-off is missing from your commits
Commit sha: abc1234 — Missing Signed-off-by line
Symptoms: - GitHub PR blocked by DCO check - Agent keeps amending commits but CI remains red
MisakaNet lesson: dco-auto-fix-workflow
Fix:
GitHub token exposed / secret scan blocked¶
Typical error:
remote: error: GH013: Secret scanning found a classic PAT
remote: — https://docs.github.com/.../about-secret-scanning
Symptoms: - Push rejected by GitHub secret scanning - Token leaked in commit, issue comment, or log
MisakaNet lesson: github-api-pr-issue-management
Fix:
1. Revoke the exposed token at https://github.com/settings/tokens
2. Remove the secret from git history: git filter-branch or BFG Repo-Cleaner
3. Generate a new token with minimal scopes
pip install timeout¶
Typical error:
ERROR: Could not install packages due to an EnvironmentError:
HTTPSConnectionPool(host='pypi.org', port=443): Read timed out
Symptoms:
- pip install hangs for minutes then fails
- Works on one network, fails on another
MisakaNet lesson: pip-install-timeout-ssl
Fix:
pip install --timeout 120 --retries 3 <package>
# Or use mirror:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple <package>
database locked¶
Typical error:
Symptoms: - Agent state database can't be written - Multiple processes accessing same SQLite file
MisakaNet lesson: agent-state-database-lock
Fix:
1. Check for zombie processes: lsof <db_path>
2. Add timeout: sqlite3.connect(db, timeout=10)
3. Use WAL mode: PRAGMA journal_mode=WAL;
Feishu document cleared by API¶
Typical error:
Symptoms: - Feishu document becomes empty after API call - Intended to delete one block, deleted everything
MisakaNet lesson: feishu-doc-delete-blocks-by-range
Fix:
- Never use start=0 with end=None on delete_blocks_by_range
- Always specify explicit start and end indices
- Test with a copy first
Windows Unicode / GBK crash¶
Typical error:
Symptoms: - Python script crashes on Windows when printing emoji - Works on Linux/Mac, fails on Windows
MisakaNet lesson: python-gbk-encoding-error
Fix:
# Option 1: Python UTF-8 mode
python3 -X utf8 script.py
# Option 2: Environment variable
set PYTHONUTF8=1 # Windows cmd
$env:PYTHONUTF8=1 # PowerShell
WSL permission denied¶
Typical error:
Symptoms: - Can't write to Windows filesystem from WSL - chmod doesn't work on NTFS
MisakaNet lesson: wsl-permission-ntfs-fix
Fix:
- Store project files in WSL filesystem (~/) not /mnt/c/
- Or edit /etc/wsl.conf: [automount]\noptions = "metadata"
FANUC error codes¶
Typical error:
MisakaNet lessons: - fanuc-intp-102 - fanuc-kl-1086
MCP server not discovered by Claude/Cursor¶
Typical error:
Fix:
1. Verify path is absolute in config
2. Run python3 scripts/mcp_server.py --help to test
3. Restart Claude Desktop / Cursor after config change
See MCP Quickstart.
Agent loops debugging same issue¶
Symptoms: - Agent keeps retrying the same fix - Progress bar stuck, same error repeated
Root cause: Agent doesn't have access to failure memory.
Fix: Connect MisakaNet via MCP so agent can search before retrying.
See MCP Quickstart.
FAQ for new contributors¶
Common onboarding failures, written as symptom → cause → fix.
Search returns nothing¶
- Symptom:
python3 search_knowledge.py "something"exits with no useful hits, or only low-confidence noise. - Cause: Query is too vague, wrong language filter, missing local index deps, or the lesson corpus was not pulled.
- Fix:
git pull --ff-only- Install the engine:
pip install misakanet-core - Retry with a concrete error string, e.g.
python3 search_knowledge.py "DCO sign-off" --top=5 - If still empty, try broader matching:
python3 search_knowledge.py "timeout" --broad --top=10 - Confirm you are in the repo root (the CLI searches relative to the MisakaNet checkout)
Lesson not found after adding¶
- Symptom: You added a markdown lesson under
lessons/, but search still cannot find it. - Cause: Search only indexes published lesson content in the current checkout; drafts, wrong path, missing frontmatter, or uncommitted files may not surface as expected.
- Fix:
- Put contributor lessons under
lessons/contrib/ - Ensure frontmatter includes at least
title,domain,tags, and a clear problem/solution body - Commit the file in your working tree (or open the PR that contains it)
- Re-run search from repo root:
python3 search_knowledge.py "<unique phrase from your title>" --top=5 - If contributing via API helper, re-check the generated path from
scripts/queue_lesson.py
DCO check fails¶
- Symptom: PR is blocked with
DCO check failed/ missingSigned-off-by. - Cause: One or more commits lack a
Signed-off-by: Name <email>trailer. - Fix:
On Windows, also see docs/dco-windows.md.
# single commit git commit --amend --signoff --no-edit git push --force-with-lease # multiple commits on your branch git rebase HEAD~N --signoff # replace N with commit count git push --force-with-lease
Quality score too low¶
- Symptom: Lesson is flagged
needs-review, or quality tooling reports a low score. - Cause: Missing root-cause detail, weak verification steps, or thin environment coverage.
- Fix: Improve the three weighted dimensions in docs/quality-score.md:
- Root cause clarity — state the exact error + why it happened
- Verification completeness — add executable commands and expected output under
## Verification - Domain coverage — note OS/runtime variants or edge cases
- Re-score with
python3 search_knowledge.py --score --top=5if telemetry is available
Windows encoding errors¶
- Symptom:
UnicodeEncodeError: 'charmap' codec can't encode character ...when printing search results or emoji. - Cause: Windows console defaults to a legacy code page (often GBK/cp936) instead of UTF-8.
- Fix:
Related detail: docs/dco-windows.md and the Windows Unicode section above.
# PowerShell $env:PYTHONUTF8=1 python3 search_knowledge.py "DCO" # cmd set PYTHONUTF8=1 python3 search_knowledge.py "DCO" # or force UTF-8 mode python3 -X utf8 search_knowledge.py "DCO"
Moved here from the README (2026-09-20) — the README now indexes the error scenes instead of carrying them.
Behind a corporate proxy¶
If you're behind a corporate firewall, set HTTPS_PROXY or HTTP_PROXY environment variables:
# Linux/macOS
export HTTPS_PROXY=http://proxy.corp.com:8080
export HTTP_PROXY=http://proxy.corp.com:8080
# Windows (PowerShell)
$env:HTTPS_PROXY = "http://proxy.corp.com:8080"
$env:HTTP_PROXY = "http://proxy.corp.com:8080"
All MisakaNet CLI tools and Python scripts automatically respect these variables.
MCP Client Configuration (Claude Desktop, Cursor):
Add the proxy to your MCP config: