---
title: "Wialon API Error Codes, in Plain English - FleetTAB"
url: https://fleettab.app/blog/wialon-api-errors/
description: "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, in Plain English

[Siarhei Havarunou](https://linkedin.com/in/sergey-govorunov) – CEO

September 21, 2026

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’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

| Code | Wialon’s description | What it means for you |
| --- | --- | --- |
| -100 | Internal error (network timeout) | The request never completed. Retry. |
| -101 | Internal error (wrong network response) | Malformed reply, usually transport. Retry. |
| 0 | Successful operation | Not an error — a logout returns it. |
| 1 | Invalid session | Log in again with your token. |
| 2 | Invalid API service name | You called a method that does not exist. Typo in the service name. |
| 3 | Invalid result | Plugin not enabled, AVL item missing, or file not found. |
| 4 | Invalid input | Wrong parameter value, wrong combination, or an ID the user cannot see. |
| 5 | Error performing request | The request was understood and still failed. Log the payload. |
| 6 | Unknown error | Often no `reason` field. Treat as transient, then investigate. |
| 7 | Access denied | Token or user lacks rights for this item or operation. |
| 8 | Invalid username or password | Credentials, not token. |
| 9 | Authorization server unavailable | Wialon side. Retry with backoff. |
| 10 | Too many requests of the same kind at once | You are parallelising too hard. |
| 11 | Password reset error | Self-explanatory. |
| 12 | Agro subsystem not loaded | Only relevant with the agro plugin. |
| 14 | Billing service required by the method is unavailable | Account/billing side. |
| 1001 | No messages for the selected interval | Not a failure — an empty answer. |
| 1002 | An item with the same name already exists | Naming collision on create. |
| 1003 | A limit is reached, or the request cannot be processed at the moment | Slow down, split the request. |
| 1004 | A message limit is reached | The interval returns more messages than allowed. |
| 1005 | Report execution time exceeded the limit | The report is too heavy as configured. |
| 1006 | A limit related to password or 2FA code is reached | Too many attempts. |
| 1011 | Your IP has changed, or the session has expired | Re-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](https://fleettab.app/blog/wialon-api-token/) 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](https://fleettab.app/blog/wialon-fleet-events/) 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](https://fleettab.app/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](https://fleettab.app/features/) 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](https://help.wialon.com/en/api/user-guide/error-codes).

## 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

- September 21, 2026 · API
 ### How to Create a Wialon API Token
 A Wialon API token is how an app reads your fleet without your password. Here is how to issue one, which access level to give it, and how to revoke it.
 [How to Create a Wialon API Token](https://fleettab.app/blog/wialon-api-token/)
- November 6, 2026 · Reports
 ### Wialon Idling Report: Where Idle Time Comes From
 How Wialon calculates idling, where it appears in reports and eco-driving, why the totals drift, and how to rank which vehicles idle most.
 [Wialon Idling Report: Where Idle Time Comes From](https://fleettab.app/blog/wialon-idling-report/)
- September 21, 2026 · Eco-driving
 ### Wialon Eco-Driving: From Criteria to a Usable Score
 Wialon detects harsh braking, acceleration and speeding. Turning those violations into a driver score people accept takes a few decisions — here they are.
 [Wialon Eco-Driving: From Criteria to a Usable Score](https://fleettab.app/blog/wialon-eco-driving-score/)

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](https://fleettab.app/privacy/).

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.

[Start free on your Wialon](https://app.fleettab.app/login) or write to [support@theassettrack.com](mailto:support@theassettrack.com)
