Skip to Content
Docs

Errors

Every code mixel, the desktop and the registry use, with its usual fix.

View as Markdown

Every error has a code, what happened, and the fix. The message you see names the exact fix for your case; this page is the index. Codes marked (warning) don't fail mixel check, but --strict and publish refuse them too.

From mixel check (and the registry)

CodeMeansUsual fix
manifest_missingThere is no app.json in the folder.mixel new "My App" starts one.
manifest_jsonapp.json is not valid JSON.Fix the JSON at the line shown.
manifest_v0app.json has no "$schema": it is the old v0 format.Add "$schema" and "sdk", rename worker.entry to entry and frontend to page, give each permission a reason.
manifest_schema"$schema" is not the v1 URL."$schema": "https://0x1audio.com/schema/app/v1.json"
manifest_fieldA field app.json doesn't have, or one that was renamed.Remove or rename it as the message says.
manifest_namename is not 2 to 48 lowercase letters, digits and dashes."name": "my-app". It never changes after the first publish.
manifest_display_namedisplayName is missing or over 48 characters."displayName": "My App"
manifest_summarysummary is not one sentence of up to 80 characters."summary": "One file to many formats at once."
manifest_versionversion is not MAJOR.MINOR.PATCH, or not above the last published one."version": "0.1.0", raised before each publish.
manifest_entryentry is missing, not a .py file, or not in the app."entry": "app.py"
manifest_pagepage is not an .html file in the app, or it isn't built.npm run build, then "page": "dist/index.html"
manifest_accentaccent is not a colour like #5b8cff."accent": "#5b8cff"
manifest_iconicon is not a square .svg or .png in the app."icon": "icon.svg"
manifest_windowwindow sizes are whole pixels within the allowed range."window": { "width": 900, "height": 640 }
manifest_licenselicense is not an SPDX identifier."license": "Apache-2.0" (or MIT, GPL-3.0-only, ...)
manifest_tagstags is more than 5 single words."tags": ["convert"]
sdk_missingapp.json has no sdk range."sdk": "^0.3"
sdk_rangesdk is not a caret range this SDK satisfies."sdk": "^0.3"
permission_undeclaredThe code uses a permission app.json doesn't ask for.mixel check --fix adds it; then write the reason in your own words.
permission_unused (warning)app.json asks for a permission the code doesn't use.Remove it, so people aren't asked for more than the app needs.
template_words (warning)The summary or a permission reason is still mixel new's words about converting, in an app that does something else.Write what your app does, and why it needs each permission, in your own words.
permission_unknownNot a permission. They are files, library, library-read, data, gpu and network.Use one of files, library, library-read, data, gpu, network.
permission_reasonA permission without a reason of 12 to 120 characters.One sentence that tells the person why, like "Open the songs you choose."
network_hostsnetwork without a list of hosts, or with the whole web, an IP or localhost."network": { "why": "Download the model once.", "hosts": ["github.com"] }
dependency_missingThe code imports a package pyproject.toml doesn't list, so Mixel won't install it.Add it to pyproject.toml › [project].dependencies.
dependency_not_installedA listed package isn't installed where mixel runs, so the actions couldn't be loaded.uv sync (mixel check --fix runs it)
lock_missingpyproject.toml lists packages but there is no uv.lock, so Mixel and the registry can't install exactly what was reviewed.uv lock, then commit uv.lock. mixel check --fix runs it.
banned_apiThe code runs programs, opens raw sockets, runs code from strings, or imports by a name it builds (subprocess, os.system, socket, ctypes, eval, exec, import, requests).Use ox.audio.convert, ox.audio.read or ox.audio.write instead of programs; urllib.request with a declared network for downloads; plain imports.
path_outsideThe code opens a fixed path outside the app, like /etc/passwd, /tmp or the home folder.Use the files the person chooses (ox.Files, ox.Folder), ox.temp() or ox.data.
app_failed_to_loadThe entry file raised an error while loading.Fix the error at the line shown; the message names the fix.
no_actionsThe entry file has no @ox.action functions.@ox.action("Title") above a function makes it an action.

When an action runs (pages see these as OxError.code)

CodeMeansUsual fix
bad_inputThe input doesn't fit the action's controls. Python never sees it.Send each control's value, as the message says.
problemThe action raised ox.Problem: something the person can fix.Show the message and hint to the person.
cancelledThe person pressed Stop. kept lists what the action finished before.Nothing to fix. Show what was kept.
crashedThe action raised an unexpected error, or the app stopped.Read the log (mixel dev prints it), fix the line, run again.
timeoutThe action ran longer than its timeout.@ox.action("Title", timeout=3600), and call ox.progress so Stop works.
permission_deniedThe page used a file the person didn't choose, or a permission they turned off.Use ox.files.pick or a Files control; ask the person to allow it.
permission_undeclaredThe app used a permission app.json doesn't declare. Declared is binding.Add it to app.json › permissions with a reason.
unavailableThe page isn't running inside Mixel, or the app has no actions.Open the app in Mixel (mixel dev).

From the mixel command

CodeMeansUsual fix
usageThe command line is wrong.mixel --help
folder_not_emptymixel new would write into a folder that has files.Choose another name.
no_testsThere are no tests in tests/.Add tests/test_app.py with a unittest that calls ox.test(...).
tests_did_not_runThe test runner itself failed.Run python -m unittest in the app's folder to see the whole error.
no_such_actionmixel run named an action the app doesn't have.Use a name mixel check lists.
no_such_topicmixel docs named a page that doesn't exist.mixel docs --list
desktop_unavailableMixel isn't running, or developer mode is off.Open Mixel, turn on Settings › Developer mode, then quit and reopen Mixel.
desktop_errorThe desktop refused or failed a dev request.Follow the message; mixel doctor checks the setup.
not_signed_inNo sign-in, or it expired.mixel login
expired_tokenThe pairing code expired before it was confirmed.mixel login
networkMixel's cloud couldn't be reached.Check the connection. MIXEL_API sets another address.
registry_unavailableThis cloud doesn't take that request from the CLI yet.Update the server, or set MIXEL_API.
registry_errorThe registry refused the request.Follow the message and its doc link.
git_missinggit isn't installed.Install git.
git_failedA git command failed.The app's folder must be a git repository pushed to GitHub.
git_dirtyThere are changes that aren't committed.git add -A && git commit -m "…" && git push
git_not_pushedThe commit isn't on GitHub yet.git push
not_repo_rootThe app isn't at the top of its git repository.Give the app its own repository.
not_githubThe remote isn't a GitHub repository.Push the app to a public GitHub repository.

From the person's Library (mixel mcp, ox1audio.local and Mixel's own assistant tools)

CodeMeansUsual fix
library_search_offMixel is closed, or Let an assistant search your Library is off.The person opens Mixel and turns it on in Settings › Your assistant.
not_readyMixel can't compare sounds yet: the sound model is off or still indexing. Search by words still works.Search with words instead, or ask the person to check Mixel.
unknown_idAn id that no search in this Mixel session returned, or one it no longer remembers.Search again and use the ids it returns.
too_manyMore than a search or a crate takes: 5 avoid or unlike words, 50 sounds in a crate.Keep the ones that matter most.
crates_offProposing crates is off in this Mixel, so nothing was made.Tell the person what you found; they can turn on Settings › Your assistant › It can propose crates.
unknown_toolMixel has no tool by that name.Use library_overview, library_search or propose_crate.
too_longMixel's answer was over its limit, so it wasn't sent.Ask for less: fewer words, or a narrower filter.
mixel_errorMixel couldn't answer, for a reason it keeps to itself.Try again; if it keeps failing, tell the person.

From the registry and the cloud (mixel login, publish and status)

CodeMeansUsual fix
github_requiredThe Mixel account has no GitHub account connected, and reviewers read the code there.Connect GitHub on your account page, then publish again.
repository_invalidrepository isn't a GitHub repository like github.com/owner/repo.Push the app to GitHub and publish from its folder.
repository_not_yoursThe repository isn't one of the public repositories GitHub shows for the connected account.Push the app to a public repository you own, or connect the GitHub account that owns it.
commit_invalidcommit isn't the full 40-character SHA of a commit.git rev-parse HEAD
commit_not_pushedThe commit isn't on GitHub yet.git push
message_invalidThe note for reviewers is over 500 characters.Shorten it.
submission_pendingA version of this app is already waiting for review.mixel status shows it; publish again once it is decided.
app_requiredThe request doesn't name the app.Name it as app.json does: mixel status in the app's folder does this.
rate_limitedToo many requests in a short time, like more than 10 submissions in an hour.Wait, then try again; the message says how long.
waitlistedThe account is on the waitlist, so only sign-in, sign-out and the account's own data answer.Wait for the email that says you're in.
terms_requiredThe account hasn't agreed to the Terms of Service.Open cloud.0x1audio.com, agree, then run mixel login again.
plan_requiredThe account's plan doesn't include this; the error names what it needs.See the plans on your account page.

On this page