n8n-io/n8n · error · UserError
No importable properties found. Please check the --include f
Error message
No importable properties found. Please check the --include flag.
What it means
Thrown by filterCredentialProperties when `--include` is provided but NONE of the listed properties are importable. Importable properties are enumerated in isCredentialPropertyImportable (credentials.ts:448-467): createdAt, updatedAt, id, name, data, type, isManaged, isGlobal, isResolvable, resolvableAllowFallback, resolverId, usageScope.
Source
Thrown at packages/cli/src/commands/import/credentials.ts:433
const unknownProperties = properties.filter((property) => !knownProperties.has(property));
if (unknownProperties.length === 0) return;
this.logger.warn(
`Ignoring unknown properties from ${flagName}: ${unknownProperties.join(', ')}`,
);
}
private filterCredentialProperties(
credential: Partial<CredentialsEntity>,
include?: string[],
exclude?: string[],
): Partial<CredentialsEntity> {
if (include?.length) {
const includeProperties = include.filter((property) =>
this.isCredentialPropertyImportable(property),
);
if (includeProperties.length === 0) {
throw new UserError('No importable properties found. Please check the --include flag.');
}
return pick(credential, includeProperties);
}
if (exclude?.length) {
const excludeProperties = exclude.filter((property) =>
this.isCredentialPropertyImportable(property),
);
return omit(credential, excludeProperties);
}
return credential;
}
private isCredentialPropertyImportable(
property: string,
): property is ImportableCredentialProperty {
const importableProperties = {View on GitHub (pinned to 5ac6606e81)
Solutions
- Use only importable property names from: createdAt, updatedAt, id, name, data, type, isManaged, isGlobal, isResolvable, resolvableAllowFallback, resolverId, usageScope.
- Drop `--include` to import all importable properties.
Example fix
// before n8n import:credentials --input=f.json --include=webhookUrl,secret // after n8n import:credentials --input=f.json --include=id,name,type,data
Defensive patterns
Strategy: validation
Validate before calling
const IMPORTABLE = new Set(['createdAt','updatedAt','id','name','data','type','isManaged','isGlobal','isResolvable','resolvableAllowFallback','resolverId','usageScope']);
function validateInclude(include?: string[]) {
if (include && !include.some(p => IMPORTABLE.has(p))) {
throw new Error(`--include must contain at least one of: ${[...IMPORTABLE].join(', ')}`);
}
}
validateInclude(include); Type guard
const IMPORTABLE = new Set(['createdAt','updatedAt','id','name','data','type','isManaged','isGlobal','isResolvable','resolvableAllowFallback','resolverId','usageScope']); const isImportableProperty = (p: string): p is ImportableCredentialProperty => IMPORTABLE.has(p);
Prevention
- Cross-check --include values against the importable property allowlist.
- Default to omitting --include (imports everything importable) unless you need filtering.
When it happens
Trigger: `n8n import:credentials --input=f.json --include=foo,bar,baz` where none of foo/bar/baz are in the importable set. The filter at credentials.ts:429-431 yields zero importable properties.
Common situations: Typing property names; using internal/legacy field names not in the allowlist; confusion with workflow properties.
Related errors
- ${flagName} must contain at least one property name.
- You cannot use `--userId` and `--projectId` together. Use on
- You cannot use `--include` and `--exclude` together. Use one
- Provider connections cannot be global, managed, or dynamical
- Provider connection data cannot be empty
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/6d35fab8c02aac43.
Report an issue: GitHub.