THE ORB
Starting the studio

field 'Jobs' is nil

Your jobs list could not be read. One typo in the jobs file breaks every job-related script at once.

groupsAll jobs stop workingpersonYou can fix this

Do this first

If you edited your jobs file recently, undo that change and restart.

bug_reportPaste your whole console instead

What it means

Code read the framework's job registry and it was not there. In QBCore that is QBCore.Shared.Jobs, in ESX it is loaded from the jobs table in the database. Every job-gated script fails at once when this happens, which makes it look bigger than it is.

What causes it

Ordered by how often it is the answer.

  1. 1

    A syntax error in the jobs config

    qb-core/shared/jobs.lua is Lua. One missing brace and the whole file fails to load, so the table is never assigned — and the error you see is over in the script that reads it, not in the file that broke.

  2. 2

    The jobs table was never imported (ESX)

    ESX reads jobs from the database. No rows, no jobs.

  3. 3

    A job that exists in one place and not the other

    A player whose job column names a job the config does not define. The registry is fine; that one lookup is nil.

  4. 4

    Reading it before the core has loaded

    Same timing problem as the core object itself.

  5. 5

    An edited shared file replaced by an update

    An update overwrote your custom jobs.

How to tell which one is yours

Scroll up for a load error in the framework's own files — a broken jobs.lua always announces itself before anything else complains. Then:

print(json.encode(QBCore.Shared.Jobs and 'loaded' or 'nil'))

Where to look

qb-core/shared/jobs.lua, or the jobs table in the database for ESX.

How to fix it

Validate the config file before restarting:

luac -p qb-core/shared/jobs.lua

And guard the per-job lookup, which is a legitimately missing key rather than a broken table:

local job = QBCore.Shared.Jobs[player.PlayerData.job.name]
if not job then return end

Still stuck on your own code?

This page is what this error usually means. Paste your console into Server Fixer and it will rank everything in it and tell you what to do first, and if you would rather not touch it, ORBIE can repair the script and hand the resource back ready to drop in.

bug_reportOpen Server Fixer

Errors that travel with this one