hcengineering/platform · critical
Please provide queue config
Error message
Please provide queue config
What it means
The server bootstrap (__start.ts) requires a queue configuration to connect to the platform queue (Kafka etc.) via getPlatformQueue. If the QUEUE_CONFIG environment variable is not set, startup is aborted immediately with this error so the transactor does not run without its message queue.
Source
Thrown at pods/server/src/__start.ts:39
type WorkspaceStatistics
} from '@hcengineering/server-core'
import serverNotification from '@hcengineering/server-notification'
import { storageConfigFromEnv } from '@hcengineering/server-storage'
import serverToken from '@hcengineering/server-token'
import { join } from 'path'
import { start } from '.'
import { profileStart, profileStop } from './profiler'
configureAnalytics('server', process.env.VERSION ?? '0.7.0')
Analytics.setTag('application', 'transactor')
let getStats: () => WorkspaceStatistics[] = () => {
return []
}
const queueConfig = process.env.QUEUE_CONFIG
if (queueConfig === undefined) {
throw new Error('Please provide queue config')
}
const queue = getPlatformQueue('transactor')
void queue.createTopics(10).catch((err) => {
console.error('Failed to create required topics', err)
})
// Force create server metrics context with proper logging
const metricsContext = initStatisticsContext('transactor', {
getStats: (): WorkspaceStatistics[] => {
return getStats()
},
factory: () =>
createOpenTelemetryMetricsContext(
'server',
{},
{},View on GitHub (pinned to 63e28dc964)
Solutions
- Set QUEUE_CONFIG in the environment before starting (e.g. export QUEUE_CONFIG='kafka://localhost:9092' or the URI/format your deployment expects).
- Check your k8s/docker deployment env and secrets references actually resolve for this pod.
- Compare with docs/examples for the expected QUEUE_CONFIG format for your platform version.
- If it should be optional in dev, run the server via a configured .env / docker-compose that defines it.
Example fix
// before npm start // after export QUEUE_CONFIG='kafka://localhost:9092' npm start
Defensive patterns
Strategy: validation
Validate before calling
if (!process.env.QUEUE_CONFIG) {
throw new Error('QUEUE_CONFIG must be set before starting the server')
} Type guard
function hasQueueConfig(env: NodeJS.ProcessEnv): env is NodeJS.ProcessEnv & { QUEUE_CONFIG: string } {
return typeof env.QUEUE_CONFIG === 'string' && env.QUEUE_CONFIG.length > 0
} Try / catch
try {
await startServer()
} catch (err) {
if (/queue config/i.test(err.message)) {
console.error('QUEUE_CONFIG is missing; set it in env/secrets and restart')
process.exit(1)
}
throw err
} Prevention
- Define QUEUE_CONFIG in deployment manifests/secrets and validate at pod start.
- Keep an .env.example documenting required env vars.
- Fail fast in CI with an env-var presence check.
- Use startup health checks that catch missing config.
When it happens
Trigger: Starting the server pod without QUEUE_CONFIG defined in the environment — missing entry in k8s Deployment env, secrets not mounted, docker run without -e QUEUE_CONFIG, or running the script locally without a .env.
Common situations: Fresh local setup missing the sample env, CI forgetting to inject secrets, renaming of the env var in a new release, secrets manager outage yielding empty env.
Understand the failure class
Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.
Related errors
- QUEUE_CONFIG env var is not set
- Missing env variables: ${missingEnv.join(', ')}
- Missing config for attributes: ${missingEnv.join(', ')}
- Missing config for attributes: ${missingEnv.join(', ')}
- Missing env variables: ${missingEnv.join(', ')}
AI-assisted analysis of hcengineering/platform@63e28dc964 (2026-08-29).
Data as JSON: /api/errors/3e729e247af32773.
Report an issue: GitHub.