FlowiseAI/Flowise · error · Error
Invalid port number
Error message
Invalid port number
What it means
Thrown by the PGVector driver's `getPostgresConnectionOptions` when `this.getHost()` equals the string `'3006'`. Despite the message 'Invalid port number', the guard actually inspects the HOST value and rejects the literal string '3006' — a defensive check to prevent accidentally pointing a Postgres store at the MySQL port (the comment says it avoids an uncaught crash). Note MySQL's real default is 3306, so the literal is itself questionable.
Source
Thrown at packages/components/nodes/vectorstores/Postgres/driver/PGVector.ts:45
additionalConfiguration = typeof additionalConfig === 'object' ? additionalConfig : JSON.parse(additionalConfig)
} catch (exception) {
throw new Error('Invalid JSON in the Additional Configuration: ' + exception)
}
additionalConfiguration = sanitizeDataSourceOptions(additionalConfiguration)
}
this._postgresConnectionOptions = {
...additionalConfiguration,
host: this.getHost(),
port: this.getPort(),
user: user,
password: password,
database: this.getDatabase()
}
// Prevent using default MySQL port, otherwise will throw uncaught error and crashing the app
if (this.getHost() === '3006') {
throw new Error('Invalid port number')
}
}
return this._postgresConnectionOptions
}
async getArgs(): Promise<PGVectorStoreArgs> {
return {
postgresConnectionOptions: await this.getPostgresConnectionOptions(),
tableName: this.getTableName(),
columns: {
contentColumnName: getContentColumnName(this.nodeData)
},
distanceStrategy: (this.nodeData.inputs?.distanceStrategy || 'cosine') as DistanceStrategy
}
}
async instanciate(metadataFilters?: any) {View on GitHub (pinned to abe4a8601a)
Solutions
- Put only the hostname/IP in the host field and the port in the separate port field.
- If you genuinely need MySQL, use a MySQL node — this is a Postgres-only store.
- Check environment variables (e.g. POSTGRES_VECTORSTORE_HOST) for stray port values.
- Be aware the guard checks host, not port; the message is misleading.
Example fix
// before — host field contains '3006' host: '3006' // after — host and port in their own fields host: 'db.example.com' port: 5432
Defensive patterns
Strategy: validation
Validate before calling
// host must not be a port-like MySQL value
function validatePgHost(host: string) {
if (!host || host === '3006' || /^\d+$/.test(host)) {
throw new Error(`Invalid Postgres host: '${host}' (use hostname/IP, put port in the port field)`)
}
} Type guard
function isRealHost(host: string): boolean {
return typeof host === 'string' && host.length > 0 && !/^\d+$/.test(host)
} Try / catch
validatePgHost(this.getHost()) const opts = await this.getPostgresConnectionOptions()
Prevention
- Keep host and port in separate fields.
- Audit env vars (POSTGRES_VECTORSTORE_HOST) for stray port values.
- Use a MySQL node for MySQL, not the Postgres store.
- Remember the guard inspects host, not port, despite the message.
When it happens
Trigger: User mistakenly types the MySQL port `3006` (intended `3306`) into the HOST field, or a template/credential populates the host with a port-like value. Because the check is on host, putting `3006` in the port field does NOT trigger this.
Common situations: Confusing host and port fields; pasting a `host:port` string into the host field; env var misconfiguration that leaks a port into the host value.
Related errors
- Invalid JSON in the Additional Configuration: ${exception}
- Invalid port number
- Invalid JSON in the Additional Configuration: ${exception}
- Model is required
- Invalid Flow State
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/da3fd713efe07534.
Report an issue: GitHub.