passbolt/passbolt_api · info

bin/cake directory_sync test --verbose for more details

Error message

bin/cake directory_sync test --verbose for more details

What it means

Companion hint printed by TestCommand::displayInvalidEntries telling the operator to re-run `bin/cake directory_sync test --verbose` to see detailed per-entry validation errors. It is informational output, not an exception; it always accompanies the invalid-users message.

Solutions

  1. Run `bin/cake passbolt directory_sync test --verbose` to print each invalid user's errors and JSON payload.
  2. Fix the directory data or attribute mapping per the printed errors.

Example fix

// before
bin/cake directory_sync test --verbose
// after
bin/cake passbolt directory_sync test --verbose
Defensive patterns

Strategy: validation

Validate before calling

exec('bin/cake passbolt directory_sync test --verbose', $out, $code);
if ($code !== 0) { /* inspect $out for per-entry errors */ }

Prevention

When it happens

Trigger: Same run as the invalid-users warning: `bin/cake passbolt directory_sync test` with invalid user entries, printed unconditionally after the count message.

Common situations: Operators seeing invalid entries and needing the follow-up command; confusing older syntax `bin/cake directory_sync` instead of the namespaced `bin/cake passbolt directory_sync`.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of passbolt/passbolt_api@31c1bbc10f (2026-09-17). Data as JSON: /api/errors/37222050bdc0e005. Report an issue: GitHub.

Appendix: source

Thrown at plugins/PassboltEe/DirectorySync/src/Command/TestCommand.php:196

    /**
     * Display invalid objects.
     *
     * @param array $data data
     * @param \Cake\Console\ConsoleIo $io Console IO.
     * @return void
     */
    protected function displayInvalidEntries(array $data, ConsoleIo $io): void
    {
        if (count($data['users'])) {
            $io->hr();
            $io->err(
                __(
                    '{0} users returned by your directory are invalid and will be ignored during synchronization',
                    count($data['users'])
                )
            );
            $io->err(__('bin/cake directory_sync test --verbose for more details'));
            $io->hr();
            foreach ($data['users'] as $user) {
                $io->verbose(__('Error: ') . $user->getErrorsAsString());
                $io->verbose(json_encode($user->toArray(), JSON_PRETTY_PRINT));
            }
        }

        if (count($data['groups'])) {
            $io->hr();
            $io->err(
                __(
                    '{0} group(s) returned by your directory are invalid and will be ignored during synchronization',
                    count($data['groups'])
                )
            );
            $io->hr();
            foreach ($data['groups'] as $group) {
                $io->verbose(__('Error: ') . $group->getErrorsAsString());

View on GitHub (pinned to 31c1bbc10f)