Exit codes and MK diagnostics
Exit codes
| Code |
Meaning |
| 0 |
done |
| 1 |
the task ran and failed (a build, tests, the Flutter process) |
| 64 |
wrong arguments |
| 65 |
validation found errors |
| 69 |
something needed is missing (Flutter, the simulator build, git) |
| 70 |
a bug in minikit — run again with --verbose and report it |
| 75 |
temporary: a busy port, a timeout, a broken download — try again |
| 78 |
configuration: minikit.yaml, miniapp.json, release.json or a version pin |
The JSON envelope
{"ok": true, "command": "validate", "toolkit": "0.1.0", "data": {...}, "diagnostics": [...]}
{"ok": false, "command": "validate", "error": {"code": 65, "message": "...", "fix": "..."}, "diagnostics": [...]}
Each diagnostic has a stable code, a severity (error, warning, info), a message, often a
fix, and a location (path[:line]).
Codes
| Range |
Area |
| MK1000–MK1012 |
miniapp.json rules: schema, id, name, version, entry point, permission names, legacy capabilities, offline/authType agreement, size, duplicates, legacy schema |
| MK1099 |
a validator itself failed |
| MK1100–MK1102 |
manifest missing; a permission used in code but not declared; declared but unused |
| MK1110–MK1112 |
entry page missing, custom loader, base href not / |
| MK1120–MK1123 |
litter, symbolic links, unsafe names, a large web/ |
| MK1130–MK1132 |
toolkit pin missing, newer than the CLI, older than the CLI |
| MK1140–MK1143 |
vendored SDK missing, other version, edited, resolved from elsewhere |
| MK1150 |
pubspec and manifest versions differ |
| MK1200–MK1214 |
bundle zips: not a zip, size and count limits, links, unsafe paths, entry page, unbuilt template, app code missing, litter, manifest missing/invalid/large, nested root, duplicates |
| MK1300–MK1305 |
build/web checks: index, base href, app code, bundled renderer, service worker, manifest copied |