Fix Notebook Errors

VerifiedSafe

Diagnoses and resolves errors in Jupyter notebooks, including Python code bugs, JSON schema violations, and source library issues. It automatically removes problematic cell IDs and normalizes nbformat_minor to fix nbconvert failures. Useful when notebook execution fails due to code logic, missing imports, or invalid metadata.

Sby Skills Guide Bot
DevelopmentIntermediate
606/2/2026
Claude CodeCursorCopilotCodex
#fix-notebook#jupyter#debugging#json-schema#nbconvert

Recommended for

Our review

This skill handles fixing errors encountered during notebook execution, ranging from Python code bugs to Jupyter JSON schema violations and library issues.

Strengths

  • Accurate traceback analysis to pinpoint root causes
  • Direct edits to notebook cells or JSON schema
  • Multiple strategies: code, schema, or library source
  • Automated verification via nbconvert

Limitations

  • Does not cover deep business logic issues
  • May be limited by complex dependency chains
  • Source fixes might require recompilation
When to use it

Use this skill when a Jupyter notebook fails due to Python errors, invalid JSON schema, or bugs in underlying libraries.

When not to use it

Avoid this skill for general design problems or notebooks requiring a complete architectural rewrite.

Security analysis

Safe
Quality score85/100

The skill performs local file modifications (reading/writing .ipynb JSON) and running Jupyter commands for error-fixing. No destructive, exfiltrating, or obfuscated operations are present; it is a legitimate Jupyter maintenance task.

No concerns found

Examples

Fix JSON schema error
This notebook fails with 'Additional properties are not allowed ('id' was unexpected)'. Fix the JSON schema by removing cell IDs and setting nbformat_minor to 4.
Correct import error
The first cell in the notebook has an import error: ModuleNotFoundError for 'gwexpy'. Add a cell to install it via pip, or fix the import path.

name: fix_notebook description: ノートブックのエラーを、そのノートブック自体の修正(セル内容・JSONスキーマ)またはソースコードの修正により解決する

Fix Notebook Errors

This skill handles fixing errors encountered during notebook execution, ranging from Python code bugs to Jupyter JSON schema violations.

Instructions

  1. Analyze the Failure:

    • Examine the traceback to determine if the error is in the notebook cell's logic, a JSON schema violation, or the underlying library.
  2. Strategy A: Fix Code Cell (Local):

    • If the usage is wrong, imports are missing, or data paths are incorrect, edit the .ipynb cells.
    • Modify the "source" field of the failing code cell in the notebook JSON.
    • Unit-Safe Assignment: When updating astropy.units objects, prefer series.value[:] = new_data to keep metadata.
  3. Strategy B: Fix JSON Schema:

    • If nbconvert or validators fail with "Additional properties are not allowed ('id' was unexpected)":
    • Remove Cell IDs: Delete the "id" key from all cells in the JSON.
    • Normalize nbformat_minor: Set nbformat_minor to 4 (if nbformat is 4) to prevent auto-adding IDs.
  4. Strategy C: Fix Library Source Code:

    • If the bug is in the gwexpy/ package, trace it to the source file and apply the fix.
  5. Verification:

    • Re-run the notebook using jupyter nbconvert --execute or test_notebooks to confirm it passes.
# Utility for Strategy B
import json
def fix_nb_schema(path):
    with open(path, 'r') as f:
        data = json.load(f)
    for cell in data.get('cells', []):
        cell.pop('id', None)
    if data.get('nbformat') == 4 and data.get('nbformat_minor', 0) >= 5:
        data['nbformat_minor'] = 4
    with open(path, 'w') as f:
        json.dump(data, f, indent=1)
Related skills