FlowiseAI/Flowise · error · Error
Unsupported type: ${typeInfo.base}
Error message
Unsupported type: ${typeInfo.base} What it means
validateTypeInfo rejects any base type not in ALLOWED_TYPES = [string, number, int, boolean, date, object, array, enum, optional, max, min, describe, default]. So z.bigint(), z.any(), z.unknown(), z.record(...), z.tuple(...), z.uuid() etc. all fail. The list deliberately conflates type names and modifier names; it is the supported subset of this secure (eval-free) parser, not full Zod.
Source
Thrown at packages/components/src/secureZodParser.ts:292
private static validateTypeInfo(typeInfo: any): void {
// If it's a nested object or array of objects, validate each property
if (typeInfo.isNestedObject || typeInfo.isArrayOfObjects) {
for (const propValue of Object.values(typeInfo.objectSchema)) {
this.validateTypeInfo(propValue)
}
return
}
// If it's a simple array, validate the inner type
if (typeInfo.isSimpleArray) {
this.validateTypeInfo(typeInfo.innerType)
return
}
// Validate base type
if (!this.ALLOWED_TYPES.includes(typeInfo.base)) {
throw new Error(`Unsupported type: ${typeInfo.base}`)
}
// Validate modifiers
for (const modifier of typeInfo.modifiers || []) {
if (!this.ALLOWED_TYPES.includes(modifier.name)) {
throw new Error(`Unsupported modifier: ${modifier.name}`)
}
}
}
private static parseArguments(argsStr: string): any[] {
// Remove outer parentheses
const inner = argsStr.slice(1, -1).trim()
if (!inner) return []
// Simple argument parsing for basic cases
if (inner.startsWith('[') && inner.endsWith(']')) {
// Array argumentView on GitHub (pinned to abe4a8601a)
Solutions
- Replace unsupported base types with a supported one (e.g. use z.string() for uuids/emails instead of z.uuid()/z.email()).
- Express complex shapes via z.object / z.array of supported primitives.
- If you need a type outside the subset, validate with native Zod in code, not via this string parser.
Example fix
// before
'z.object({ id: z.bigint(), meta: z.record(z.string()) })'
// after
'z.object({ id: z.string(), meta: z.array(z.object({ k: z.string(), v: z.string() })) })' Defensive patterns
Strategy: type-guard
Validate before calling
const ALLOWED_BASES = ['string','number','int','boolean','date','object','array','enum']
function onlyAllowedBases(schema: string): boolean {
// crude check: extract base identifiers and verify membership
return !/z\.(bigint|any|unknown|record|tuple|map|set|uuid|email|url|nan|never|void|undefined)\b/.test(schema)
} Type guard
const SUPPORTED = new Set(['string','number','int','boolean','date','object','array','enum','optional','max','min','describe','default']) const isAllowedBase = (base: string): boolean => SUPPORTED.has(base)
Prevention
- Author schemas using only the supported base types (string, number, boolean, date, enum, object, array).
- Replace z.bigint/z.record/z.tuple/z.any with compositions of supported primitives.
- For types outside the subset, validate in code with native Zod instead of the string parser.
When it happens
Trigger: Using Zod types outside the supported subset: z.bigint(), z.any(), z.record(), z.tuple(), z.map(), z.set(), z.uuid(), z.email() (as a base), etc.
Common situations: Copying a schema from Zod docs/tutorials that uses types beyond the supported subset; migrating an existing Zod schema into Flowise's string-based secure parser.
Related errors
- Unsupported modifier: ${modifier.name}
- Error parsing Zod Schema: ${exception}
- Received tool input did not match expected schema: ${JSON.st
- Received tool input did not match expected schema: ${JSON.st
- Received tool input did not match expected schema
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/74c958faad3d4ae6.
Report an issue: GitHub.