payloadcms/payload · error · APIError
The global with slug ${String(globalSlug)} can't be found.
Error message
The global with slug ${String(globalSlug)} can't be found. What it means
Thrown by updateGlobalLocal (payload.updateGlobal) when globalSlug is not in payload.globals.config. Guard before delegating to updateOperation.
Source
Thrown at packages/payload/src/globals/operations/local/update.ts:131
): Promise<TransformGlobalWithSelect<TSlug, TSelect>> {
const {
slug: globalSlug,
data,
depth,
draft,
overrideAccess = true,
overrideLock,
populate,
publishAllLocales,
select,
showHiddenFields,
unpublishAllLocales,
} = options
const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug)
if (!globalConfig) {
throw new APIError(`The global with slug ${String(globalSlug)} can't be found.`)
}
return updateOperation<TSlug, TSelect>({
slug: globalSlug as string,
data: deepCopyObjectSimple(data), // Ensure mutation of data in create operation hooks doesn't affect the original data
depth,
draft,
globalConfig,
overrideAccess,
overrideLock,
populate,
publishAllLocales,
req: await createLocalReq(options as CreateLocalReqOptions, payload),
select,
showHiddenFields,
unpublishAllLocales,
})
}View on GitHub (pinned to 00c58b35c0)
Solutions
- Validate the slug against payload.globals.config before calling.
- Use typed GlobalSlug at every update call site.
- Run a grep pass after renaming a global.
- Ensure payload.init() has resolved.
Example fix
// before
await payload.updateGlobal({ slug: 'seettings', data })
// after
if (!payload.globals.config.some(g => g.slug === slug)) {
throw new Error(`Unknown global slug: ${slug}`)
}
await payload.updateGlobal({ slug, data }) Defensive patterns
Strategy: validation
Validate before calling
if (!payload.globals.config.some((g) => g.slug === slug)) {
throw new Error(`Unknown global: ${slug}`)
} Type guard
function isGlobalSlug(payload: Payload, slug: string): slug is GlobalSlug {
return payload.globals.config.some((g) => g.slug === slug)
} Try / catch
try {
await payload.updateGlobal({ slug, data })
} catch (err) {
if (err instanceof APIError && /can't be found/.test(err.message)) return null
throw err
} Prevention
- Validate dynamic slugs from input before update.
- Keep a typed constants module for global slugs.
When it happens
Trigger: Calling payload.updateGlobal({ slug: 'mistyped', data }) with an unregistered slug.
Common situations: Slug typo; renamed global; programmatic update with a slug from untrusted/dynamic input; calling before init.
Related errors
- The global with slug ${String(globalSlug)} can't be found. C
- The global with slug ${String(globalSlug)} can't be found.
- The global with slug ${String(globalSlug)} can't be found.
- The global with slug ${String(globalSlug)} can't be found.
- The global with slug ${String(globalSlug)} can't be found.
AI-assisted analysis of payloadcms/payload@00c58b35c0 (2026-08-12).
Data as JSON: /api/errors/f9cba77e72f09658.
Report an issue: GitHub.