Skip to content
Visor Developers

Errors

Every failed call, and every stream that ends badly, throws a KitException (in JSON-RPC, an error whose data is a Failure). Act on code. message is for logs: its wording changes between releases.

try {
    visor.camera.takePhoto()
} catch (e: KitException) {
    Log.w(TAG, "photo failed: ${e.code} ${e.reason}: ${e.message}")
}
Code Meaning What to do
scope_denied The app does not hold the scope in scope. Ask for it with RequestScopes.
unknown_method Visor does not know the method or topic. Check the name. From the library this cannot happen: it raises visor_too_old first.
invalid_params The params do not fit the method. Fix the call.
unsupported These glasses cannot do it: the prompter without a display, the band without a band. Check GlassesStatus.display, or BandStatus.paired, before offering the feature.
not_connected The glasses, or the band, are not connected and did not connect in time. Tell the person to put the glasses on, or take them out of the case.
busy Something else holds what this needs, for example a video is recording. Try again later.
refused The glasses or the band turned the request down. Usually nothing; see the message.
timeout The glasses did not answer in time. Try again; if it keeps happening, the glasses may need a restart.
failed Anything else. reason can say more, for example why an import failed. See the method's page.
visor_missing Visor is not installed. Raised by the library. Point the person to Visor.
visor_too_old Visor is older than this call needs. Raised by the library. Ask the person to update Visor, or check visor.supports(...) first.
visor_gone The connection to Visor broke during the call, for example because Visor restarted. Raised by the library. Call again; the connection comes back on its own.
closed Your app closed the connection while the call ran. Raised by the library. Nothing.

Some failures carry a reason that says what the person can change:

Reason With What to tell the person
not_set_up unsupported Set the band up in Visor's band settings: only the Display holds it now.
not_shared unsupported Turn on Visor > Settings > Neural Band > Share with the phone, for band.motion.
not_allowed refused Allow the web app in Visor > Settings > Web apps > the app > Visor access.

Visor adds codes and reasons over time. Treat a code you do not know as failed.