Environment activated? which python should show dataiku-env
Variables set? echo $DSS_URL
Can connect? Run scripts/bootstrap.py
Recipe saved? Check for settings.save()
Job ran? Check for recipe.run()
Job succeeded? Check job.get_status()
Schema correct? Run autodetect_settings()
Top-10 Error Quick Reference
Error
Cause
Solution
Connection refused
Wrong DSS_URL or instance down
Verify URL, check instance status
401 Unauthorized
Invalid or expired API key
Regenerate key in Dataiku UI
Project not found
Wrong project key or no access
client.list_project_keys() to verify
Settings not saved
Missing settings.save()
Always call settings.save() after changes
Recipe ran but no data
Filter/join removed all rows
Check inputs, join keys, filters
Job failed
Schema mismatch, missing inputs
Inspect job status and logs
invalid identifier (quoted)
Lowercase column names in SQL schema
Normalize schema to UPPERCASE
table does not exist
Upstream dataset not built
Build datasets in dependency order
Insert value list mismatch
Output schema doesn't match recipe output
Run recipe.compute_schema_updates() and apply
ModuleNotFoundError: dataikuapi
Virtual environment not activated
source ~/dataiku-env/bin/activate
Job Failure Investigation Pattern
# Get the most recent job and extract error details
jobs = project.list_jobs()
job = project.get_job(jobs[0]['def']['id'])
status = job.get_status()
state = status.get("baseStatus", {}).get("state") # "DONE" or "FAILED"
if state == "FAILED":
activities = status.get("baseStatus", {}).get("activities", {})
for name, info in activities.items():
if info.get("firstFailure"):
print(f"Error: {info['firstFailure'].get('message')}")
# Or get full log
print(job.get_log())
Important:recipe.run() already waits for completion internally. Use recipe.run(no_fail=True) to prevent exceptions on failure, then inspect the returned job object.
Detailed Error References
For full details on each error category including causes, code examples, and solutions:
references/connection-errors.md — Connection refused, 401 Unauthorized, Project not found
references/recipe-errors.md — Settings not saved, empty output, job failures, job API usage patterns
references/sql-errors.md — Invalid identifier (quoted/general), table does not exist, pre-join computed columns, insert value list mismatch
references/environment-errors.md — ModuleNotFoundError, missing env vars, getting more help
1---2name: troubleshooting3description: Use when debugging failed jobs, diagnosing errors, or resolving common Dataiku issues4---56# Dataiku Troubleshooting Guide78## Debugging Checklist9101. [ ] Environment activated? `which python` should show dataiku-env112. [ ] Variables set? `echo $DSS_URL`123. [ ] Can connect? Run `scripts/bootstrap.py`134. [ ] Recipe saved? Check for `settings.save()`145. [ ] Job ran? Check for `recipe.run()`156. [ ] Job succeeded? Check `job.get_status()`167. [ ] Schema correct? Run `autodetect_settings()`1718## Top-10 Error Quick Reference1920| Error | Cause | Solution |21|-------|-------|----------|22| `Connection refused` | Wrong DSS_URL or instance down | Verify URL, check instance status |23| `401 Unauthorized` | Invalid or expired API key | Regenerate key in Dataiku UI |24| `Project not found` | Wrong project key or no access | `client.list_project_keys()` to verify |25| Settings not saved | Missing `settings.save()` | Always call `settings.save()` after changes |26| Recipe ran but no data | Filter/join removed all rows | Check inputs, join keys, filters |27| Job failed | Schema mismatch, missing inputs | Inspect job status and logs |28| `invalid identifier` (quoted) | Lowercase column names in SQL schema | Normalize schema to UPPERCASE |29| `table does not exist` | Upstream dataset not built | Build datasets in dependency order |30| `Insert value list mismatch` | Output schema doesn't match recipe output | Run `recipe.compute_schema_updates()` and apply |31| `ModuleNotFoundError: dataikuapi` | Virtual environment not activated | `source ~/dataiku-env/bin/activate` |3233## Job Failure Investigation Pattern3435```python36# Get the most recent job and extract error details37jobs = project.list_jobs()38job = project.get_job(jobs[0]['def']['id'])39status = job.get_status()40state = status.get("baseStatus", {}).get("state") # "DONE" or "FAILED"4142if state == "FAILED":43 activities = status.get("baseStatus", {}).get("activities", {})44 for name, info in activities.items():45 if info.get("firstFailure"):46 print(f"Error: {info['firstFailure'].get('message')}")4748 # Or get full log49 print(job.get_log())50```5152> **Important:** `recipe.run()` already waits for completion internally. Use `recipe.run(no_fail=True)` to prevent exceptions on failure, then inspect the returned job object.5354## Detailed Error References5556For full details on each error category including causes, code examples, and solutions:5758- **[references/connection-errors.md](references/connection-errors.md)** — Connection refused, 401 Unauthorized, Project not found59- **[references/recipe-errors.md](references/recipe-errors.md)** — Settings not saved, empty output, job failures, job API usage patterns60- **[references/sql-errors.md](references/sql-errors.md)** — Invalid identifier (quoted/general), table does not exist, pre-join computed columns, insert value list mismatch61- **[references/environment-errors.md](references/environment-errors.md)** — ModuleNotFoundError, missing env vars, getting more help6263## Scripts6465- **[scripts/debug_job.py](../../scripts/debug_job.py)** — Standalone script to debug the most recent failed job
Run npx skillmds@latest add jediv/troubleshooting in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Use when debugging failed jobs, diagnosing errors, or resolving common Dataiku issues It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
jediv (@jediv) published this skill. Their other Agent Skills are listed on their SkillMD profile.