Troubleshooting¶
The bot tries to say exactly what went wrong and who can fix it. This page groups the messages you are most likely to meet.
The commands don't appear in Discord¶
Command lists are cached by the Discord client. Reload it (Ctrl+R on desktop) and give it a few
minutes after inviting the bot. If /setup in particular is missing, check that you have the
Manage Server permission — /setup is hidden from members who don't.
"This server is not linked to an RLT league yet"¶
Nobody has paired this server yet. An admin needs to run /setup link with a pairing code from RLT
Desktop — see Link your league.
"The official bot is off for this league"¶
The server is linked, but Racing League Tools reports that the official bot is not enabled. The message names the reason:
| Reason | What it means | What to do |
|---|---|---|
| the league is not on Pro Plus | The Public API works on Pro, but the official bot needs Pro Plus | Upgrade the league's plan |
| the league API key is inactive | The key exists but is switched off | Re-activate it in Racing League Tools |
| the league API key has expired | The key is past its validity | Issue a new key, then re-link with a fresh pairing code |
| the league's storage is banned | The league's storage was blocked | Contact Racing League Tools support |
| the Public API is disabled for this league | API access is off for the league | Enable it in Racing League Tools |
After fixing it, run /setup status to apply the change straight away. Otherwise the bot picks it up
on its own within a few hours.
Pairing problems¶
| Message | Meaning | What to do |
|---|---|---|
| RLT rejected that pairing code | Mistyped, already used, or older than 60 minutes | Generate a new code in RLT Desktop |
| RLT refused the pairing | The league doesn't qualify — the reason is named | See the table above |
| Couldn't reach RLT while pairing | The pairing request never got an answer | Run /setup status first. If the server is linked, you're done; if not, get a new code |
| Pairing failed (RLT HTTP …) | RLT returned an error | The code may be used up — generate a new one before retrying |
| RLT rejected this bot's service key | A problem on the bot operator's side | Nothing you can do; contact the bot operator |
| Server misconfiguration: encryption key missing | The bot instance is not fully configured | Contact the bot operator |
Warning
A pairing code is single use, so the bot never silently retries pairing. If pairing didn't clearly
succeed, always check /setup status before generating another code.
"RLT rejected the stored league key (401)"¶
The key the bot holds for this server is no longer accepted — usually because it was rotated or revoked. An admin should re-link the server with a fresh pairing code.
Data commands come back empty or fail¶
| Message | Meaning |
|---|---|
| Couldn't reach the RLT API — it may be down right now | Racing League Tools didn't respond. Try again in a moment |
| Couldn't fetch data (HTTP …) | RLT returned an error for this request |
| Couldn't determine the season | The bot couldn't work out which season to use — pass season explicitly |
| This season has no standings yet | No rounds have been classified yet |
| This season has no rounds yet | The calendar is empty |
| This season is finished — no upcoming rounds | Nothing left to count down to in view:Upcoming |
| Couldn't find a race / qualifying session for this round | That round has no session of the kind the command handles |
This is a … session — /… only handles … sessions |
You pointed a race command at a qualifying session, or vice versa. Practice sessions aren't supported by any command |
Some errors add a small second line with the season, round and session the command was actually working on. That is the quickest way to see whether the defaults picked what you expected.
Multiclass and lineup messages¶
| Message | Meaning | What to do |
|---|---|---|
| This season has no class … | The class value isn't a class of that season — classes are defined per season |
Pick one from the suggestions, or drop the option for the whole field |
| No … entries in this session | The class exists in the season, but nobody in that class took part in this session | Check the session, or drop class |
| RLT doesn't publish constructor standings per class | Constructor standings exist per season, not per class | Drop class for the overall constructors table, or keep it with type:Drivers |
| This season has no seats filled in yet | Nobody is assigned to the season yet — usual before it starts | Try again once the league fills the line-up |
Track and team messages¶
| Message | Meaning | What to do |
|---|---|---|
| No track named … | The circuit isn't one your league has in its calendar | Pick it from the suggestions |
| The league has this track in its calendar but has never raced there yet | The circuit is scheduled but has no completed round | Nothing to fix — the card appears after the first race there |
| The league has not raced at … in … | The circuit exists, but not inside the group of seasons you picked | Drop multiseason, or pick a group that contains it |
| … has no team statistics | Team statistics are not enabled for that multiseason in RLT Desktop | Switch them on there; All Seasons never has them |
| No team named … in this group | That team didn't race in the group you picked | Pick from the suggestions, or choose another group |
| RLT didn't return track / team statistics | Racing League Tools didn't answer this request | Try again in a moment |
"This session has no live telemetry"¶
/render-race-highlights and /render-race-strategy are built from telemetry. The session you asked
for had its results entered by hand, so those cards can't be drawn — use /render-race-results, which
works for both kinds. See Live sessions versus manually entered results.
Driver and head-to-head messages¶
| Message | What to do |
|---|---|
| Choose a driver from the suggestions | Pick the driver from the autocomplete list rather than typing a free-form name |
| This driver didn't compete in season … | Choose a different season, or drop season for career statistics |
Ratings are available only with the season option |
Add season — telemetry ratings exist per season |
| No telemetry data for this season | That season's results were entered manually, so there are no ratings |
| Pick either a team, or driver1 + driver2 | /head2head takes a team or two drivers, never both and never just one |
| Need two drivers to compare | That team has fewer than two drivers in the season |
| Pick two different drivers | driver1 and driver2 are the same person |
Suggestions are missing a new round or driver¶
The season, round, session, driver, team and track suggestions are cached for a few minutes so
they can answer inside Discord's three-second budget. A round or driver added in Racing League Tools
a moment ago may therefore not be offered yet — and a command run without options may still pick the
previous round, because it chooses its default from the same lists.
An admin can run /setup refresh, which re-reads them immediately. Results themselves are always
fetched live, so this never affects the classification you see, only what the options offer.
If /setup refresh answers that it couldn't refresh, run /setup status first: the league may have
lost access rather than have no data.
"⏳ Still loading — type again in a second"¶
Discord gives autocomplete a hard three-second budget, which is not always enough the first time the bot looks at a season it hasn't touched yet. The data keeps loading in the background — type again a second later and the full list is there.
If you accept that placeholder instead of a real choice, the command treats the option as if you had left it empty and falls back to its default.