FiveM Resource Errors: Couldn't load resource and All the Others

Couldn't find versus Couldn't load, missing dependencies, manifest errors, escrow, Awaiting scripts and streaming warnings - what each error means, and who can see it.


Read this distinction first - it solves half the cases

Two errors look alike and get confused constantly. They come from different machines and have nothing to do with each other:

Error Where it happens What it means
Couldn't find resource <name> The server The server does not know that resource at all
Couldn't load resource <name> The player's client The file downloaded but could not be unpacked

Find is your problem: the folder is named differently, is in the wrong place, or has not been scanned yet.

Load is a transfer problem on the player's side - usually a corrupt cache. It is rarely anything you did.

Colour codes in the log: if you run the server through a script or pipe the log to a file, you will see sequences like ^1, ^3 and ^7 in the middle of the text. Those are colour codes, not part of the error. They disappear in the normal console.


Couldn't find resource <name>

The server did not find a resource by that name.

Causes:

  1. The folder name does not match the name you write in ensure. Names are case-sensitive on Linux
  2. The resource was added after the server last scanned - run refresh
  3. The folder has no valid fxmanifest.lua, so the scan skipped it entirely
  4. The folder sits in a bracketed category that is not being started

Related messages from the same place: Couldn't find resource category <name>, Couldn't start resource <name> and Couldn't stop resource <name>.


Couldn't load resource sessionmanager

The full error on the player's side typically looks like this:

Couldn't load resource sessionmanager: Failed to open packfile:
ReadBulk of header failed: Failed to fetch: Failed to add entry to
local storage (download corrupted?)

Other tails you will see: Invalid magic, HTTP 403: filter failed : not a valid client, or Unknown error.

The name in the error is usually not the culprit. sessionmanager and spawnmanager are system resources, and they are among the first things a client downloads. So if something is wrong with the transfer itself, it almost always surfaces as one of those - regardless of which resource is actually at fault.

If several players report different resource names, it is a transfer problem, not a resource problem.

Causes, in order:

  1. A corrupt cache on the player's machine. By far the most common, and not your fault. Ask them to delete their FiveM cache folder
  2. A proxy or CDN in front of the server interfering with file transfers. The tail HTTP 403: filter failed : not a valid client is the tell - typically Cloudflare filtering the client's file requests. Disable filtering on the file transfers, or remove the proxy
  3. Genuinely corrupt files on the server after a bad FTP upload. Produces Invalid magic
  4. A very large resource timing out mid-download

Could not find dependency <x> for resource <y>

For example Could not find dependency es_extended for resource esx.

What it means: the resource's manifest says it requires another resource, and that other resource is not known to the server.

Causes:

  1. The dependency is not installed at all. Note that async and mysql-async are two different things - a classic ESX mix-up
  2. The dependency is on disk but has not been scanned. Run refresh
  3. The folder name does not match. A folder called es_extended-master does not satisfy dependency 'es_extended'. Rename it
  4. The dependency itself has a broken or missing fxmanifest.lua and was skipped in the scan - it is on disk but invisible
  5. The order in server.cfg - the dependency has to start first

Manifest errors

During startup the server scans the resources folder and writes one line per problem. The exact messages:

<name> does not have a resource manifest (fxmanifest.lua)
<name> has an outdated manifest (__resource.lua instead of fxmanifest.lua)
<name> exists in more than one place (<path> is used, the duplicate is <path>)
<name> is a category, but has a resource manifest
Resource <name> does not specify an fx_version in fxmanifest.lua.
Resource <name> does not support the current game (<game>).

Three things worth knowing:

A missing manifest is only a warning. The folder is skipped and the server starts fine. A broken manifest, on the other hand, is an error.

Warning-coloured but fatal anyway: the messages about fx_version and unsupported games are printed as warnings, but the resource is refused. People skim past them and then cannot work out why the resource never starts.

exists in more than one place is the most overlooked. If you have two copies of the same resource, the server uses one - and you are sitting there editing the other. That is the explanation for "I edited the file and nothing happens".

If there is a syntax error in the manifest itself, you get instead:

Could not parse resource metadata file <path>: <lua error>
Could not execute resource metadata file <path>: <lua error>

Parse means a syntax error in the manifest. Execute means the manifest is syntactically valid but failed when it ran.

Files named in the manifest that do not exist

could not find client_script client/main.lua (defined in fxmanifest.lua:12)

An exact message, line number and all. It is worth its weight in gold and is mentioned almost nowhere else.


Script errors

There are three lines, and they always come together:

Error parsing script @myresource/server/main.lua in resource myresource: <lua error>
Failed to load script server/main.lua.

Failed to load script on its own tells you almost nothing. It is always preceded by an Error parsing or Error loading line that contains the actual error. People typically copy only the last line.

Parse = a syntax error in the file. Loading = the file ran and failed - often because a dependency was not ready yet, so really an ordering problem.

Runtime errors look like this:

SCRIPT ERROR: @myresource/client/main.lua:42: attempt to index a nil value (global 'ESX')

The @ in front of the path is not an error. It is a Lua convention, and it is useful: whatever sits between the @ and the first slash is always the resource name. That is how you identify the culprit from a player's screenshot.


Failed to verify protected resource <name>

This applies to paid scripts with escrow protection.

Causes, in order:

  1. The .fxap file was not uploaded. Many FTP clients skip it because they read it as a hidden file. Check that it is in the resource root
  2. A partial or corrupt upload. Upload the original .zip and extract it on the server rather than uploading loose files
  3. FTP in ASCII mode corrupted the file. Use binary transfer
  4. The server was not restarted after installation

A related error is You lack the required entitlement to use <name>. That means something entirely different: the files are fine, but the server's license key belongs to a different Cfx account than the one that bought the script. Create a key from the right account.

A misleading error worth knowing: a Lua syntax error with an unreadable character around line 1 in an escrow-protected file looks like a bug in the code, but actually means the encrypted file was read as plain text - so the same as causes 1 and 3. People spend hours "fixing" Lua that is not broken.


Stuck on "Awaiting scripts"

This is not an error - it is a state. The client has every file and is waiting for the server's scripts to give the green light. It never times out, so no error text appears.

Causes:

  1. spawnmanager or sessionmanager is not running, or crashed
  2. A framework resource failed during its own startup and never signalled ready
  3. A script failed inside the spawn handling - visible in the player's F8 console
  4. A broken loading screen that never dismisses itself

Look in the server console, not at the client. The real error is usually in the server's startup, several minutes earlier. Make sure ensure spawnmanager and ensure sessionmanager are in your server.cfg - if they are missing, that alone explains it.


Connection rejected by server: Resource prevented connection.

What it means: a resource rejected the player - not the server itself. Typically a queue, whitelist, ban or anticheat script.

If there is different text after the colon, that is the message the resource itself supplied. If it says exactly Resource prevented connection., it gave no message - often because it failed partway through its own check.

A related one: Failed handshake to server <address> - it closed the connection while deferring means the server died or dropped the connection mid-join.


Streaming warnings

Asset mymods/vehicle.ytd uses 34.2 MiB of physical memory.

Above 48 MiB this is added:

Oversized assets can and WILL lead to streaming issues
(such as models not loading/rendering).

The thresholds are:

Size What happens
Over 16 MiB Warning
Over 32 MiB Warning, yellow
Over 48 MiB Warning with the blunt wording above
Over 64 MiB Warning, red

There is no hard 16 MB limit. It is claimed everywhere, but 16 MiB is merely the first warning threshold. Files above that size still load - they just get increasingly problematic.

On the player's side it shows up as Failed to call inflate() for streaming file <name>.ytd or Streaming data in archive is corrupt - usually a corrupt upload.


Game build and versions

This server requires a different game build (<x>) from the one you're using (<y>).
Client/Server game build revision mismatch: you are running game build <x>
revision <y>, while server expects revision <z>.

Set with sv_enforceGameBuild in server.cfg. It is startup-only and cannot be changed while the server runs.

A slightly overlooked case: a resource can itself require a particular game build in its manifest. Then you get sv_enforceGameBuild needs to be at least <x> (current is <y>) - and "the resource will not start" is really a version problem.


Where is the log - and how do you get the error out of a player?

FXServer writes no log file of its own. The console is the log. If you run txAdmin - and you do, if you followed txAdmin and resources - the stored logs live under txData/<profile>/logs/.

The key thing to understand: an error in a client_script is invisible to you. The server never sees it. That is why you can be looking at an empty console while the player has a red error on screen.

How to get it out of them:

  1. Ask them to press F8 to open the client console
  2. Ask for a screenshot scrolled all the way to the top - the first error is the cause, the rest are knock-on effects
  3. Ask for the exact time, so you can find the matching point in the server console
Error Who sees it
Manifest, dependency, Couldn't find resource Server only
Errors in a server_script Server only
Errors in a client_script Player only (F8)
Couldn't load resource Player only
Streaming warnings at startup The server
Connection rejected by server The player, but the cause is on the server

ensure, start, restart and refresh

Command What it does
start <name> Starts it, if it is stopped. Does nothing if it is running
restart <name> Restarts, only if it is already running
ensure <name> Works either way. Use this one
stop <name> Stops the resource
refresh Rescans the folder and discovers new resources

Three traps:

  • restart on a stopped resource does nothing
  • refresh is required after you add new files - otherwise you get Couldn't find resource
  • refresh does not restart what is already running. If you edited a manifest, run refresh and restart

Good advice

  • Read the log from the top down. The first error during startup is almost always the cause of all the ones after it.
  • Add resources one at a time and restart in between.
  • Upload paid scripts as the original .zip and extract on the server. That removes the entire escrow category of errors.
  • Keep your server.cfg in order: database, framework core, and then everything that uses them.
  • If several players report different resource names in the same error, look for something in the transfer - not in the resources.

Cannot place an error? Send us the first 30 lines of the server console from startup, and an F8 screenshot from an affected player.

FiveMOrder now

Guide Information

Published
September 6, 2026
Last Updated
September 8, 2026
Views
25