phacility/phabricator · warning · PhutilArgumentUsageException
lipsum is a development and testing tool and may only be run
Error message
lipsum is a development and testing tool and may only be run on installs in developer mode. Enable "%s" in your configuration to enable lipsum.
What it means
'bin/lipsum' refuses to run unless the 'phabricator.developer-mode' configuration is enabled -- it is the first check in execute(). Generating piles of fake objects on a production install is destructive, so the tool is locked to developer-mode installs only.
Source
Thrown at src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php:34
'help' => pht(
'Generate objects without prompting for confirmation.'),
),
array(
'name' => 'quickly',
'help' => pht(
'Generate objects as quickly as possible.'),
),
array(
'name' => 'args',
'wildcard' => true,
),
));
}
public function execute(PhutilArgumentParser $args) {
$config_key = 'phabricator.developer-mode';
if (!PhabricatorEnv::getEnvConfig($config_key)) {
throw new PhutilArgumentUsageException(
pht(
'lipsum is a development and testing tool and may only be run '.
'on installs in developer mode. Enable "%s" in your configuration '.
'to enable lipsum.',
$config_key));
}
$all_generators = id(new PhutilClassMapQuery())
->setAncestorClass('PhabricatorTestDataGenerator')
->setUniqueMethod('getGeneratorKey')
->execute();
$argv = $args->getArg('args');
$is_force = $args->getArg('force');
$is_quickly = $args->getArg('quickly');
$all = 'all';
View on GitHub (pinned to 5720a38cfe)
Solutions
- Enable the flag on a development install only: './bin/config set phabricator.developer-mode true', run lipsum, then set it back to false.
- Never enable this on production: lipsum creates large amounts of fake data that is hard to remove.
Example fix
// before ./bin/lipsum generate users // after ./bin/config set phabricator.developer-mode true && ./bin/lipsum generate users && ./bin/config set phabricator.developer-mode false
Defensive patterns
Strategy: validation
Validate before calling
// Check the guard the workflow itself uses, before running lipsum:
if (!PhabricatorEnv::getEnvConfig('phabricator.developer-mode')) {
throw new RuntimeException(
'Enable phabricator.developer-mode on development installs only.');
} Prevention
- Enable phabricator.developer-mode only on disposable dev installs; toggle it off after generating data.
- Make seeding scripts check the config first so failures happen before any data is written.
When it happens
Trigger: Running './bin/lipsum generate ...' on an install where 'phabricator.developer-mode' is unset or false -- typically a staging or production-like environment.
Common situations: Trying to seed demo data on a prod or prod-like instance; forgetting to re-enable developer mode on a rebuilt dev environment; CI environments that never set the flag.
Related errors
- Failed to load a random user. You may need to generate more
- Argument "%s" does not match the name of any generators.
- Argument "%s" is ambiguous, and matches multiple generators:
- Request parameter "%s" is not formatted properly. Expected a
- Request parameter "%s" is not formatted properly. Expected a
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/22a960a187eb4102.
Report an issue: GitHub.