{"record":{"id":"22a960a187eb4102","repo":"phacility/phabricator","slug":"lipsum-is-a-development-and-testing-tool-and-may-o","errorCode":null,"errorMessage":"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.","messagePattern":"lipsum is a development and testing tool and may only be run on installs in developer mode\\. Enable \"(.+?)\" in your configuration to enable lipsum\\.","errorType":"console","errorClass":"PhutilArgumentUsageException","httpStatus":null,"severity":"warning","filePath":"src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php","lineNumber":34,"sourceCode":"            'help' => pht(\n              'Generate objects without prompting for confirmation.'),\n          ),\n          array(\n            'name' => 'quickly',\n            'help' => pht(\n              'Generate objects as quickly as possible.'),\n          ),\n          array(\n            'name'      => 'args',\n            'wildcard'  => true,\n          ),\n        ));\n  }\n\n  public function execute(PhutilArgumentParser $args) {\n    $config_key = 'phabricator.developer-mode';\n    if (!PhabricatorEnv::getEnvConfig($config_key)) {\n      throw new PhutilArgumentUsageException(\n        pht(\n          'lipsum is a development and testing tool and may only be run '.\n          'on installs in developer mode. Enable \"%s\" in your configuration '.\n          'to enable lipsum.',\n          $config_key));\n    }\n\n    $all_generators = id(new PhutilClassMapQuery())\n      ->setAncestorClass('PhabricatorTestDataGenerator')\n      ->setUniqueMethod('getGeneratorKey')\n      ->execute();\n\n    $argv = $args->getArg('args');\n    $is_force = $args->getArg('force');\n    $is_quickly = $args->getArg('quickly');\n\n    $all = 'all';\n","sourceCodeStart":16,"sourceCodeEnd":52,"githubUrl":"https://github.com/phacility/phabricator/blob/5720a38cfe95b00ca4be5016dd0d2f3195f4fa04/src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php#L16-L52","documentation":"'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.","triggerScenarios":"Running './bin/lipsum generate ...' on an install where 'phabricator.developer-mode' is unset or false -- typically a staging or production-like environment.","commonSituations":"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.","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."],"exampleFix":"// before\n./bin/lipsum generate users\n// after\n./bin/config set phabricator.developer-mode true && ./bin/lipsum generate users && ./bin/config set phabricator.developer-mode false","handlingStrategy":"validation","validationCode":"// Check the guard the workflow itself uses, before running lipsum:\nif (!PhabricatorEnv::getEnvConfig('phabricator.developer-mode')) {\n  throw new RuntimeException(\n    'Enable phabricator.developer-mode on development installs only.');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["lipsum","phabricator","cli","config-flag","developer-mode"],"backgroundTag":"missing-config-flag","analyzedSha":"5720a38cfe95b00ca4be5016dd0d2f3195f4fa04","analyzedAt":"2026-08-21T05:07:25.672Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}