Skip to content

Wialon API Error Codes, in Plain English

Siarhei Havarunou – CEO

What Wialon's API error codes actually mean — 1, 4, 7, 1003 and the rest — which ones are your fault, which are limits, and what to do about each.

Wialon API error codes explained for fleet integrations

Wialon’s API answers a failed request with a number. The numbers are stable and well defined, but the official one-line descriptions leave out the part you need at 9 p.m. when an integration has stopped: whose fault it is and what to change. Here is the full table with that part added.

The full list

CodeWialon’s descriptionWhat it means for you
-100Internal error (network timeout)The request never completed. Retry.
-101Internal error (wrong network response)Malformed reply, usually transport. Retry.
0Successful operationNot an error — a logout returns it.
1Invalid sessionLog in again with your token.
2Invalid API service nameYou called a method that does not exist. Typo in the service name.
3Invalid resultPlugin not enabled, AVL item missing, or file not found.
4Invalid inputWrong parameter value, wrong combination, or an ID the user cannot see.
5Error performing requestThe request was understood and still failed. Log the payload.
6Unknown errorOften no reason field. Treat as transient, then investigate.
7Access deniedToken or user lacks rights for this item or operation.
8Invalid username or passwordCredentials, not token.
9Authorization server unavailableWialon side. Retry with backoff.
10Too many requests of the same kind at onceYou are parallelising too hard.
11Password reset errorSelf-explanatory.
12Agro subsystem not loadedOnly relevant with the agro plugin.
14Billing service required by the method is unavailableAccount/billing side.
1001No messages for the selected intervalNot a failure — an empty answer.
1002An item with the same name already existsNaming collision on create.
1003A limit is reached, or the request cannot be processed at the momentSlow down, split the request.
1004A message limit is reachedThe interval returns more messages than allowed.
1005Report execution time exceeded the limitThe report is too heavy as configured.
1006A limit related to password or 2FA code is reachedToo many attempts.
1011Your IP has changed, or the session has expiredRe-authenticate. Common on mobile and VPN.

The four you will actually meet

1 — invalid session. By far the most common, and the most misdiagnosed. People reissue the token; the token was never the problem. A Wialon session is short-lived state built from a token, and it ends on idle time, a server-side restart or a network change. Any integration that runs longer than a few minutes needs to handle this: catch the 1, log in again, replay the request once. If you see it on every call, then the token is wrong.

4 — invalid input. Wialon’s description is broader than it looks: as well as a bad parameter, you get a 4 when an object ID does not identify something the current user can access. So the same call that works for an administrator returns 4 for a restricted user. Before you hunt for a formatting bug, check that the user can actually see the unit.

7 — access denied. A permissions answer. Check in this order: the token’s access flags, then the user’s rights on the target unit or resource, then whether the operation needs editing rights you assumed were read. Reissuing the token with a wider access level fixes most of them.

1003 — a limit is reached. This is the one that turns a working integration into a flaky one as the fleet grows. It does not mean your request was wrong; it means it was too much, right now. Twenty parallel report runs, a year-long interval across 300 units, a loop that fires one request per vehicle — all of it lands here, along with its cousin 10 (too many requests of the same kind at once) and 1005 (report execution time exceeded).

Building something that does not break

Four habits keep an integration out of the limit codes.

Batch instead of looping. Wialon takes many operations in one request. Asking for 300 units in a single batched call costs one request; a loop over 300 units costs 300 and gets you a 1003 long before it finishes. This is the single biggest difference between an integration that scales and one that works in a demo.

Keep intervals honest. A report over a year is not the same problem as twelve reports over a month, from the server’s point of view. When you hit 1004 or 1005, the interval is usually the variable to change first.

Cache what does not move. Unit lists, sensor definitions and driver bindings change rarely. Fetching them on every screen is how a well-behaved application accidentally becomes an aggressive one.

Back off, do not hammer. On 10, 1003, 9 and the negative codes, wait and retry with increasing delays. On 1, 1011 re-authenticate once and retry. On 4 and 7, stop: retrying will never help, and only a change to the request or the rights will.

Reading errors as fleet data

Two codes are worth surfacing to users rather than swallowing. 1001 — no messages for the selected interval is not an error at all; it is the true answer that a unit was silent. Show it as “no data”, because on a fleet dashboard a silent unit is information: a device offline, a SIM out of credit, a vehicle parked for a month. FleetTAB’s Events view exists for exactly this reason — it maps which units have data for which detectors before you build anything on top of them.

And 1003 on a heavy report tells you something about how you are asking, not about the fleet. If the answer you want needs a year of data across the whole fleet, the platform’s report engine is the wrong tool to ask it with — which is the argument made in more detail in FleetTAB vs Wialon reports.

Where this leaves you

Error codes look like a support topic and behave like an architecture one. Integrations that batch, cache, back off and re-authenticate hardly ever see anything but 1 and 1001; integrations that loop see 1003 the week a customer doubles their fleet. If you would rather not write and maintain that layer, FleetTAB is that layer, on top of the Wialon account you already run — one token, no migration, and every list in it built out of batched requests.

Sources: Wialon’s official error code reference.

Frequently asked questions

What does Wialon error 1 mean? +

Invalid session. The session built from your token has expired or was never established — often after an idle period, a server restart or an IP change. The fix is to log in again with the token rather than to reissue the token.

What does Wialon error 7 mean? +

Access denied: the user or token does not have the rights the operation needs. It is a permissions problem, not a bug. Check the token's access flags first, then the user's access to the specific unit or resource.

Why do I get error 1003 on reports? +

A limit has been reached or the request cannot be processed right now. In practice it means you are asking for too much at once — too many units, too long an interval, or too many parallel requests. Split the request, batch the units, and retry with a delay.

How do I avoid hitting Wialon API limits? +

Ask for many units in one batched request instead of looping one unit at a time, keep intervals as short as the answer allows, cache what does not change between calls, and back off when you see 10 or 1003 rather than retrying immediately.

More from FleetTAB

Contact us

Get in touch

Questions, a demo, or white-label for your own company — tell us.

A person answers, usually the same working day. No newsletter, and nothing is passed on — see the privacy policy.

Why FleetTAB

Your fleet data is already in Wialon. Put it to work.

Free on your own account
No per-vehicle fee. White-label and custom work are the paid parts.
Nothing migrated
Wialon stays the source of truth, and switching off leaves it untouched.
Minutes, not a project
One Wialon API token, revocable from Wialon at any moment.