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

  1. Enable the flag on a development install only: './bin/config set phabricator.developer-mode true', run lipsum, then set it back to false.
  2. 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

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


AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21). Data as JSON: /api/errors/22a960a187eb4102. Report an issue: GitHub.