xpipe-io/xpipe · error · ValidationException

Identity access scope is not currently accessible

Error message

Identity access scope is not currently accessible

What it means

IdentityStore.checkComplete() validates that an identity store is fully configured. After validating name/password/SSH identity sub-stores, it checks that the identity's access scope refers to at least one currently accessible store entry (accessScope.isAnyAccessible()); if none are accessible it throws a ValidationException. This prevents saving/using identities whose scope points only at unavailable or deleted connections.

Source

Thrown at ext/base/src/main/java/io/xpipe/ext/base/identity/IdentityStore.java:43

    public abstract DataStoreEntryRef<IdentityStore> getCustomEditTarget();

    public abstract UsernameStrategy getUsername();

    public abstract SecretRetrievalStrategy getPassword();

    public abstract SshIdentityStrategy getSshIdentity();

    @Override
    public void checkComplete() throws ValidationException {
        if (getPassword() != null) {
            getPassword().checkComplete();
        }
        if (getSshIdentity() != null) {
            getSshIdentity().checkComplete();
        }
        if (!getAccessScope().isAnyAccessible()) {
            throw new ValidationException("Identity access scope is not currently accessible");
        }
    }

    public abstract String getName();
}

View on GitHub (pinned to d85ca821ba)

Solutions

  1. Widen the identity's access scope (or fix its filter) so at least one accessible store entry matches.
  2. Recreate/reconnect the scoped connections so isAnyAccessible() returns true.
  3. Check the scope's matched entries programmatically before checkComplete: if (!getAccessScope().isAnyAccessible()) prompt the user to fix the scope.

Example fix

// before
identityStore.checkComplete();
// after
if (!identityStore.getAccessScope().isAnyAccessible()) {
    throw new ValidationException("Fix the identity's access scope: no accessible stores selected");
}
identityStore.checkComplete();
Defensive patterns

Strategy: try-catch

Validate before calling

if (!identityStore.getAccessScope().isAnyAccessible()) {
    // prompt user to fix scope before validating
}

Try / catch

try {
    identityStore.checkComplete();
} catch (ValidationException e) {
    // access scope matches no accessible stores; ask user to widen scope
}

Prevention

When it happens

Trigger: Calling checkComplete() on an IdentityStore whose access scope matches zero entries — e.g. all scoped connections were deleted, the scope filter matches nothing, or referenced stores are currently unavailable/offline by accessibility rules.

Common situations: Deleting or moving connections that an identity's access scope referenced; an overly restrictive scope filter expression matching no stores; importing an identity config whose scope names don't exist in this workspace.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of xpipe-io/xpipe@d85ca821ba (2026-09-06). Data as JSON: /api/errors/2fef08e1e682d18c. Report an issue: GitHub.