ErrLookup › OtterMind/Chat2DB
OtterMind/Chat2DB
Chat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40+ databases, manage data, edit and run SQL, and use your own AI model to generate, explain, and optimize queries. Available on desktop, web, Docker, and CLI, with MCP support. · Java · 3,112 source files
Analyzed at 5ee1e990e7 on 2026-08-14. 277 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| License flow is disabled in community mode | exception | warning | community-mode, license, feature-flag, frontend |
| Pricing is disabled in community mode | exception | warning | community-mode, pricing, billing, feature-flag, frontend |
| The baseURL is not valid! | validation | error | sse, ai, config, validation, frontend |
| Fetch failed with status ${response.status} | exception | error | sse, ai, network, http, frontend |
| The response body is empty. | exception | error | sse, ai, network, response-handling, frontend |
| The baseURL is not valid! | validation | error | sse, ai, config, validation, frontend |
| The response content-type: ${contentType} is not support! | exception | error | sse, ai, content-type, response-handling, frontend |
| Data validation failed: ${error.message} | validation | error | zod, validation, data-validation, schema, frontend |
| Missing local file path | validation | error | desktop, jcef, ai, file-handling, frontend |
| Missing file | validation | error | web, ai, file-handling, validation, frontend |
| License flow is disabled in community mode | exception | warning | community-mode, license, feature-flag, runtime-env, frontend |
| Pricing is disabled in community mode | exception | warning | community-mode, pricing, billing, runtime-env, frontend |
| Pricing is disabled in community mode | exception | warning | community-mode, pricing, billing, runtime-env, frontend |
| Decryption error | exception | error | cryptography, aes-gcm, encryption, security, frontend |
| Failed to update local file | exception | error | desktop, jcef, file-handling, io, frontend |
| Failed to persist cleanup and roll back assignment changes. | exception | error | github, automation, transaction, claim-management, node |
| GITHUB_EVENT_PATH is required. | exception | error | github, automation, environment, config, node |
| Usage: node script/github/issue-claim.js <event|cleanup|swee | exception | error | |
| GH_PROJECT_TOKEN is required. | exception | error | |
| GITHUB_REPOSITORY must be owner/repository. | exception | error | |
| GitHub API ${method} ${endpoint} failed (${response.status}) | exception | error | |
| GitHub GraphQL failed: ${JSON.stringify(payload.errors).slic | exception | error | |
| Project ${this.owner}/${this.projectNumber} was not found. | exception | error | |
| Project Status field was not found. | exception | error | |
| Project Status option not found: ${status} | exception | error | |
file.type.unsupported file.type.unsupported | exception | error | |
mysql.account.actionRequired mysql.account.actionRequired | exception | error | |
mysql.account.actionUnsupported mysql.account.actionUnsupported | exception | error | |
mysql.account.scopeRequired mysql.account.scopeRequired | exception | error | |
mysql.account.scopeUnsupported mysql.account.scopeUnsupported | exception | error | |
largeCellValue.unsupportedFormat largeCellValue.unsupportedFormat | exception | error | |
jdbc.driver.uploadFailed jdbc.driver.uploadFailed | exception | error | |
file.type.unsupported file.type.unsupported | exception | error | |
file.upload.failed file.upload.failed | exception | error | |
ai.attachment.inputStreamRequired ai.attachment.inputStreamRequired | exception | error | |
ai.attachment.parseFailed ai.attachment.parseFailed | exception | error | |
ai.attachment.filePathRequired ai.attachment.filePathRequired | exception | error | ai, attachment, input-validation, validation |
ai.attachment.fileNotFound ai.attachment.fileNotFound | exception | error | ai, attachment, filesystem, input-validation |
ai.attachment.localParseFailed ai.attachment.localParseFailed | exception | error | ai, attachment, io, filesystem, parsing |
ai.attachment.unsupportedFileType ai.attachment.unsupportedFileType | exception | error | ai, attachment, parsing, defensive-code, internal-bug |
ai.attachment.emptyContent ai.attachment.emptyContent | exception | error | ai, attachment, parsing, content-validation |
ai.attachment.unsupportedFileExtensions ai.attachment.unsupportedFileExtensions | exception | error | ai, attachment, input-validation, file-type |
ai.chat.history.sessionNotOwned ai.chat.history.sessionNotOwned | exception | error | ai, chat-history, authorization, ownership, validation |
ai.chat.history.deleteMessagesFailed ai.chat.history.deleteMessagesFailed | exception | error | ai, chat-history, filesystem, io, cleanup |
ai.chat.history.loadSessionsFailed ai.chat.history.loadSessionsFailed | exception | error | ai, chat-history, serialization, io, data-corruption |
ai.chat.history.persistSessionsFailed ai.chat.history.persistSessionsFailed | exception | error | ai, chat-history, io, filesystem, persistence |
ai.chat.history.loadMessagesFailed ai.chat.history.loadMessagesFailed | exception | error | ai, chat-history, serialization, io, data-corruption |
ai.chat.history.persistMessagesFailed ai.chat.history.persistMessagesFailed | exception | error | ai, chat-history, io, filesystem, persistence |
ai.model.config.required ai.model.config.required | exception | error | ai, model-config, community, validation |
ai.model.config.notFound ai.model.config.notFound | error_code | error | ai, model-config, not-found, ownership |
| provider is required | validation | error | ai, model-config, validation, illegal-argument |
| model is required | validation | error | ai, model-config, validation, illegal-argument |
| Unsupported provider: | validation | error | ai, model-config, provider, enum, validation |
| Failed to load ai config from | exception | critical | ai, model-config, startup, serialization, data-corruption |
| Failed to persist ai config to | exception | critical | io, filesystem, ai-config, permissions, serialization |
| No database connection context found. Call list_all_datasour | validation | error | ai-tool, datasource, validation, context |
| No database connection context found. Provide dataSourceId/d | validation | error | ai-tool, datasource, validation, context |
datasource_connection_failed datasource_connection_failed | error_code | error | datasource, jdbc, connection, cli |
datasource_not_found Datasource not found: | error_code | error | datasource, not-found, cli, validation |
invalid_connection_test_args --data-source-id cannot be combined with temporary connection parameters | validation | warning | datasource, validation, cli, connection-test |
invalid_datasource_create_args datasource-create requires dbType | validation | warning | datasource, validation, cli, create |
web.not.support.db.type web.not.support.db.type | error_code | error | datasource, edition, h2, sqlite, validation |
sql_query_failed sql_query_failed | error_code | error | sql, jdbc, cli, execution |
account.manage.unsupported account.manage.unsupported | error_code | error | account-management, spi, plugin, unsupported |
connection error connection error | error_code | error | connection, context, account, i18n |
largeCellValue.rowNotFound largeCellValue.rowNotFound | error_code | warning | cell-value, large-value, stale-reference, concurrency |
largeCellValue.readFailed largeCellValue.readFailed | error_code | error | cell-value, large-value, jdbc, io, streaming |
largeCellValue.downloadFailed largeCellValue.downloadFailed | error_code | error | cell-value, large-value, download, jdbc, io |
largeCellValue.rowLocatorRequired largeCellValue.rowLocatorRequired | error_code | error | cell-value, large-value, validation, primary-key |
connection error connection error | error_code | error | connection, context, database-switch, i18n |
datasource.not.found datasource.not.found | error_code | error | datasource, not-found, i18n, connection |
| dataSourceConnect.getMessage() | exception | error | connection, jdbc, test-connect, driver, credentials |
connection.ssh.error connection.ssh.error | error_code | error | ssh, connection, tunnel, credentials |
web.not.support.db.type web.not.support.db.type | error_code | error | validation, web, desktop, db-type, local-file |
database.delete.prepareFailed database.delete.prepareFailed | error_code | error | database, delete, ddl, prepare, jdbc |
database.delete.connectionTargetsDeletedDatabase database.delete.connectionTargetsDeletedDatabase | validation | error | database, delete, ddl, safety, connection |
database.delete.executeFailed database.delete.executeFailed | exception | error | database, delete, ddl, execute, jdbc |
database.delete.connectionDatabaseMismatch database.delete.connectionDatabaseMismatch | validation | error | database, delete, schema, ddl, connection, mismatch |
database.delete.invalidDataSource database.delete.invalidDataSource | validation | error | database, delete, datasource, context, validation |
database.delete.notSupportDbType database.delete.notSupportDbType | validation | error | database, delete, db-type, unsupported, validation |
database.delete.${fieldName}Required database.delete.${fieldName}Required | validation | error | database, delete, validation, required-field |
database.delete.notSupportDatabase database.delete.notSupportDatabase | validation | error | database-delete, dbtype-capability, validation |
database.delete.systemDatabaseForbidden database.delete.systemDatabaseForbidden | validation | error | database-delete, system-database, mysql, safety-guard |
database.delete.connectionFailed database.delete.connectionFailed | validation | critical | database-delete, connection, context-missing |
database.delete.databaseNotExists database.delete.databaseNotExists | validation | error | database-delete, not-found, metadata |
database.delete.notSupportSchema database.delete.notSupportSchema | validation | error | schema-delete, dbtype-capability, postgresql, validation |
database.delete.systemSchemaForbidden database.delete.systemSchemaForbidden | validation | error | schema-delete, system-schema, postgresql, safety-guard |
database.delete.schemaNotExists database.delete.schemaNotExists | validation | error | schema-delete, not-found, metadata |
database.delete.confirmNameMismatch database.delete.confirmNameMismatch | validation | error | database-delete, schema-delete, confirmation, safety-guard |
diff_error diff_error | exception | error | diff, liquibase, wrapper-error |
datasource.not.found datasource.not.found | validation | error | diff, datasource, not-found |
connection error connection error | validation | critical | ddl, connection, context-missing |
count error count error | exception | error | count, sql-execution, fallback-exhausted |
copyInValues.unsupportedDataSource copyInValues.unsupportedDataSource | validation | error | copy-in-values, dbtype-capability, sql-builder |
copyInValues.invalidSourceType copyInValues.invalidSourceType | validation | error | copy-in-values, validation, invalid-input |
mongodb count error mongodb count error | exception | error | mongodb, count, wrapper-error |
largeCellValue.partialPreviewEditRejected largeCellValue.partialPreviewEditRejected | validation | warning | large-value, partial-preview, edit-rejected, validation |
request.required request.required | validation | error | validation, request-validation, dml-execution, i18n-missing-key |
exportType exportType | validation | error | validation, request-validation, export, enum |
sql sql | validation | error | validation, request-validation, export, sql |
dataSource.sqlAnalysisError dataSource.sqlAnalysisError | validation | error | db-type, export, sql-analysis, plugin |
jdbc.driver.downloadFailed jdbc.driver.downloadFailed | exception | error | jdbc-driver, network, connection, i18n-missing-key |
web.not.support.db.type web.not.support.db.type | validation | error | desktop, capability-gate, jdbc-driver, deployment-mode |
largeCellValue.tokenRequired largeCellValue.tokenRequired | validation | error | validation, large-value, token, request-validation |
largeCellValue.tokenExpired largeCellValue.tokenExpired | validation | warning | large-value, token, cache, transient, expiry |
largeCellValue.tokenForbidden largeCellValue.tokenForbidden | validation | error | authz, large-value, token, multi-tenant |
routine.operation.onlyMysqlSupported routine.operation.onlyMysqlSupported | exception | error | capability-gate, routines, mysql, plugin |
| connection error | exception | error | connection, routines, i18n-missing-key, context |
sqlExecution.streamingUnsupported sqlExecution.streamingUnsupported | exception | error | streaming, capability-gate, sql-execution, plugin |
drop table error drop table error | exception | error | ddl, table-operations, i18n-missing-key, database-error |
truncate table error truncate table error | exception | error | ddl, table-operations, i18n-missing-key, database-error |
copy table error copy table error | exception | error | database, ddl, table-copy, plugin |
web.not.support.db.type web.not.support.db.type | exception | error | datasource, config, desktop-only, release-mode |
common.needLoggedIn common.needLoggedIn | exception | error | auth, session, encryption, datasource |
api.privateKeyNotFound api.privateKeyNotFound | exception | error | encryption, rsa, auth, config |
api.decryptPasswordError api.decryptPasswordError | exception | error | encryption, rsa, datasource, key-mismatch |
| file not exist | exception | error | excel, h2, filesystem, import |
| Failed to create table for excel import: | exception | error | excel, ddl, h2, import |
| Failed to insert excel import data: | exception | error | excel, batch-insert, h2, import |
file.type.unsupported file.type.unsupported | exception | warning | import, config, validation, enum |
| Error opening file ' | exception | error | xml, filesystem, import, config |
| Error parsing XML document | exception | error | xml, parsing, security, import |
| Error creating XML document | exception | critical | xml, environment, jaxp, classpath |
common.dataNotFound common.dataNotFound | exception | warning | task, download, export, not-found |
common.permissionDenied common.permissionDenied | exception | error | auth, authorization, task, download |
common.paramDetailError common.paramDetailError | exception | warning | export, validation, factory, param |
data.export.json.error data.export.json.error | exception | error | export, json, serialization, jackson |
common.paramDetailError common.paramDetailError | exception | warning | import, validation, factory, param |
jsonFile.parse.error jsonFile.parse.error | exception | warning | import, json, validation, parsing |
| e.getMessage() | exception | error | desktop, jcef, resource, packaging, classpath |
| Failed to load frontend files | exception | critical | jcef, frontend, packaging, startup, desktop |
| Unable to register the Chat2DB preview resource scheme | exception | error | jcef, cef, scheme-registration, lifecycle, desktop |
| Unable to register the Chat2DB preview resource handler | exception | error | jcef, cef, scheme-registration, lifecycle, desktop |
| Selected path is not a directory | validation | warning | sql-directory, path-validation, user-input, filesystem |
| Unsupported SQL directory child type | validation | warning | sql-directory, contract-validation, user-input, frontend |
| Path is outside of the selected SQL directory | validation | error | sql-directory, security, path-traversal, containment, defense-in-depth |
| File or directory already exists | validation | warning | sql-directory, duplicate, user-input, filesystem |
| Selected SQL directory root cannot be renamed | validation | warning | sql-directory, rename, user-input, business-rule |
| Symbolic links are not supported | validation | warning | sql-directory, security, symlink, rename, defense-in-depth |
| Selected path is not available | validation | warning | sql-directory, rename, path-validation, filesystem, stale-state |
| Selected SQL directory root cannot be deleted | validation | warning | sql-directory, delete, user-input, business-rule |
| Invalid DB2 index column ordering: {ascOrDesc} | validation | error | db2, sql-guard, ddl, index, validation |
| Unsupported DM VARCHAR unit: {unit} | validation | error | dm, dameng, sql-guard, ddl, validation, varchar |
| Invalid DM index sort direction: {value} | validation | error | dm, dameng, sql-guard, ddl, index, validation |
| Invalid DM BIT literal: {value} | validation | error | dm, dameng, sql-guard, ddl, bit, validation |
| DM index must contain at least one named column | validation | error | dm, dameng, ddl, index, validation, business-rule |
| Invalid generic {what}: {value} | validation | error | generic, sql-guard, identifier, validation |
| Unsafe column type name from metadata: {typeName} | validation | error | h2, sql-guard, ddl, metadata, validation, type |
| Unsafe H2 column default from metadata: {columnDefault} | validation | error | h2, sql-guard, ddl, metadata, default, validation |
| Invalid Hive {what}: {value} | validation | error | hive, sql-guard, ddl, identifier, validation |
| Invalid Hive default value: {value} | validation | error | hive, sql-guard, ddl, default, validation |
| Invalid Hive index sort direction: {value} | validation | error | hive, sql-guard, ddl, index, validation |
| Unsupported Hive index type: {type} | validation | error | hive, ddl, index, builder, validation |
| Hive index requires at least one named column | validation | error | hive, ddl, index, null-check, validation |
| Missing JDBC type for Kylin column: {name} | validation | error | kylin, metadata, ddl, jdbc, validation |
| Unsupported Kylin JDBC column type: {jdbcType} | validation | error | kylin, metadata, ddl, jdbc, type, validation |
| Missing JDBC type name for Kylin ARRAY column: {name} | validation | error | kylin, metadata, ddl, jdbc, array, validation |
| Unsupported Kylin JDBC ARRAY type for column: {name} | validation | error | kylin, metadata, ddl, jdbc, array, validation |
| Invalid geometry inputStream - less than five bytes | exception | warning | mariadb, geometry, wkb, jdbc, data-conversion |
| Invalid MongoDB database name: {name} | validation | error | mongodb, validation, injection-guard, ddl |
| Invalid MongoDB {what}: {name} | validation | error | mongodb, validation, metadata |
database.delete.notSupportSchema database.delete.notSupportSchema | error_code | error | mysql, ddl, unsupported-operation, schema |
| Existing routine definition is empty | exception | error | mysql, routine, migration, privilege |
| Existing routine definition does not contain routine name | exception | error | mysql, routine, migration, compatibility |
routine.operation.parameterLoadFailed routine.operation.parameterLoadFailed | exception | error | mysql, routine, metadata, privilege |
routine.operation.typeUnsupported routine.operation.typeUnsupported | error_code | error | mysql, routine, validation |
routine.operation.nameRequired routine.operation.nameRequired | validation | error | mysql, routine, validation |
routine.operation.databaseRequired routine.operation.databaseRequired | validation | error | mysql, routine, validation |
routine.operation.ddlRequired routine.operation.ddlRequired | validation | error | mysql, routine, migration, validation |
| Invalid MySQL {what}: {value} | validation | error | mysql, validation, injection-guard, ddl |
| Invalid MySQL default value: {value} | validation | error | mysql, validation, ddl, default-value |
| Invalid MySQL bit literal: {value} | validation | error | mysql, validation, ddl, bit-literal |
| Invalid MySQL hex digits: {value} | validation | error | mysql, validation, ddl, hex-literal |
| Invalid MySQL definer: {value} | validation | error | mysql, validation, injection-guard, ddl, definer |
| Invalid MySQL column type: {value} | validation | error | mysql, validation, ddl, column-type |
| Invalid MySQL index sort direction: {value} | validation | error | mysql, validation, ddl, index |
mysql.account.listUnavailable mysql.account.listUnavailable | exception | error | mysql, account, privilege, metadata |
mysql.account.grantsUnavailable mysql.account.grantsUnavailable | exception | error | mysql, account, privilege, grants |
mysql.account.previewTokenMismatch mysql.account.previewTokenMismatch | validation | error | |
mysql.account.actionUnsupported mysql.account.actionUnsupported | error_code | error | |
mysql.account.identifierRequired mysql.account.identifierRequired | validation | error | |
mysql.account.literalRequired mysql.account.literalRequired | validation | error | |
mysql.account.databaseRequired mysql.account.databaseRequired | validation | error | |
mysql.account.tableRequired mysql.account.tableRequired | validation | error | |
mysql.account.scopeUnsupported mysql.account.scopeUnsupported | error_code | error | |
mysql.account.privilegeRequired mysql.account.privilegeRequired | validation | error | |
mysql.account.actionRequired mysql.account.actionRequired | validation | error | |
mysql.account.passwordRequired mysql.account.passwordRequired | validation | error | |
mysql.account.userRequired mysql.account.userRequired | validation | error | |
mysql.account.invalidAccountName mysql.account.invalidAccountName | validation | error | |
mysql.account.privilegeUnsupported mysql.account.privilegeUnsupported | error_code | error | |
| Error parsing SQL statement: {e.getMessage()} | exception | error | |
| Invalid geometry inputStream - less than five bytes | exception | error | |
| Unsupported Oracle VARCHAR unit: {unit} | validation | error | |
| Invalid Oracle index sort direction: {value} | validation | error | |
| Invalid Oracle RAW/BLOB hex value | validation | error | |
| Unsupported Oracle ${description}: ${value} | validation | error | |
| Invalid Oscar default value: ${defaultValue} | validation | error | |
| Invalid Oscar length unit: ${unit} | validation | error | |
| Invalid Oscar sort order: ${ascOrDesc} | validation | error | |
| Oscar index requires at least one named column | validation | error | |
| Invalid PostgreSQL ${what}: ${value} | validation | error | |
| Invalid PostgreSQL bit literal: ${value} | validation | error | |
| Invalid PostgreSQL bytea hex literal: ${value} | validation | error | |
| EWKB contains trailing data | validation | error | |
| EWKB nesting is too deep | validation | error | |
| EWKB bounding-box headers are not supported | validation | error | |
| Unsupported EWKB geometry type | validation | error | |
| Nested EWKB SRID differs from its parent | validation | error | |
| EWKB point contains an invalid empty coordinate | validation | error | |
| EWKB line string must be empty or contain at least two coord | validation | info | postgresql, ewkb, geometry, validation |
| EWKB linear ring must contain at least four coordinates | validation | info | postgresql, ewkb, geometry, polygon, validation |
| EWKB linear ring is not closed | validation | info | postgresql, ewkb, geometry, polygon, validation |
| EWKB coordinate is not finite | validation | info | postgresql, ewkb, geometry, data-integrity, validation |
| EWKB collection contains an unexpected geometry type | validation | info | postgresql, ewkb, geometry, collection, validation |
| EWKB collection contains mixed coordinate dimensions | validation | info | postgresql, ewkb, geometry, collection, validation |
| EWKB contains a negative element count | validation | info | postgresql, ewkb, geometry, data-integrity, validation |
| Unsupported EWKB byte order | validation | info | postgresql, ewkb, geometry, data-integrity, validation |
| EWKB ends before its declared geometry data | validation | info | postgresql, ewkb, geometry, data-integrity, truncation |
| Presto table name must not be blank | validation | error | presto, metadata, validation, identifier |
| Presto schema name is required when catalog name is provided | validation | error | presto, metadata, validation, identifier |
dataSource.sqlAnalysisError Invalid statements | error_code | error | redis, sql-parsing, validation, business-exception |
| Redis command execution failed, sql=${originalSql} | exception | error | redis, jdbc, execution, runtime-exception |
| Redis update command failed, sql={sql} | exception | error | redis, jdbc, execution, runtime-exception |
| Redis JDBC command arguments cannot contain NUL, CR, or LF | validation | error | redis, injection-guard, validation, security |
| Redshift table name must not be empty | validation | error | redshift, metadata, validation, identifier |
| Invalid Snowflake {what}: {value} | validation | error | snowflake, ddl, validation, identifier, sql-injection |
| Invalid Snowflake index sort direction: {value} | validation | error | snowflake, ddl, validation, index |
| Unsupported Snowflake column type: {columnType} | validation | error | snowflake, ddl, column-type, alter-table |
| Unsupported Snowflake index type: {indexType} | validation | error | snowflake, ddl, index-type, create-table |
| Snowflake index requires at least one named column | validation | error | snowflake, ddl, index, validation |
| Unsafe {what} name: {name} | validation | error | sqlite, ddl, validation, security, collation |
| SQLite index must contain at least one named column | validation | error | sqlite, ddl, index, validation |
| Source table DDL is empty | validation | error | sqlserver, ddl, table-copy, validation |
| Unable to locate the source CREATE TABLE statement | validation | error | sqlserver, ddl, table-copy, parsing |
| Unable to rewrite source table reference in DDL batch: {sql} | validation | error | sqlserver, ddl, table-copy, parsing |
| Unable to rewrite table extended property: {sql} | validation | error | sqlserver, ddl, table-copy, extended-property, parsing |
| Invalid SQL Server collation name: {collation} | validation | error | sqlserver, ddl, validation, security, collation |
| Invalid SQL Server view attribute: {viewAttribute} | validation | error | sqlserver, ddl, view, validation |
| Invalid SQL Server index column sort order: {ascOrDesc} | validation | error | sqlserver, ddl, index, validation |
| Invalid SUNDB index sort direction: {value} | validation | error | sundb, ddl, index, validation, security |
| Unsupported VARCHAR unit: {unit} | validation | error | sundb, ddl, varchar, validation, security |
| Unsupported SUNDB constraint type: {constraintType} | validation | error | sundb, ddl, constraint, validation |
| Unsupported SUNDB index null ordering: {nullOrder} | validation | error | sundb, ddl, index, validation |
| Cannot collect unsupported event: {event_name} | validation | error | notify-qq, github-actions, python, validation, config |
| Prepared QQ notification is missing or too large | validation | error | notify-qq, github-actions, python, validation, config |
| Prepared QQ notification is not valid JSON | validation | error | notify-qq, github-actions, python, json, validation |
| Prepared QQ notification has an invalid format | validation | error | notify-qq, github-actions, python, json, validation |
| Prepared QQ notification repository does not match | validation | error | config, github-actions, notification, validation |
| Prepared QQ notification event is not allowed | validation | error | config, github-actions, notification, validation |
| Prepared QQ notification message is invalid | validation | error | config, github-actions, notification, validation, type-check |
| Prepared QQ notification contains control characters | validation | error | config, github-actions, notification, validation, sanitization |
| Prepared QQ notification contains a OneBot CQ code | validation | error | security, config, github-actions, notification, validation |
| Unsupported GitHub event: {event_name} | exception | error | github-actions, notification, validation, events |
| QQ relay response was not a JSON object | exception | error | network, relay, notification, runtime |
| QQ relay network request failed: {error.reason} | exception | error | network, relay, notification, runtime |
| QQ_RELAY_URL must be an HTTPS URL without credentials or a f | validation | error | config, security, network, github-actions, validation |
| Missing required GitHub Actions secrets: {missing} | validation | error | config, security, github-actions, secrets, validation |
| GITHUB_EVENT_PATH does not point to an event payload | validation | error | config, github-actions, environment, validation |
| A delivery ID is required for relay deduplication | validation | error | config, github-actions, relay, validation |
| RELAY_TOKEN must contain at least 32 characters | validation | critical | config, security, relay, startup, secrets |
| ONEBOT_TOKEN must contain at least 32 characters | validation | critical | config, security, relay, startup, secrets |
| QQ_GROUP_ID must be a numeric QQ group number | validation | critical | config, relay, startup, validation |
| unauthorized | http | error | security, relay, authentication, http |
| Content-Type must be JSON | http | error | http, relay, validation, content-type |
| Content-Length is required | http | error | http, relay, validation |
| request body is too large | http | error | http, relay, validation, limits |
| request body is not valid JSON | http | error | http, relay, validation, json |
| request body must be a JSON object | http | error | http, json, validation, qq-relay |
| repository is not allowed | http | error | http, authorization, configuration, qq-relay |
| delivery_id is invalid | http | error | http, validation, regex, qq-relay |
| message must be non-empty text | http | error | http, validation, qq-relay |
| message is too long | http | error | http, validation, configuration, qq-relay |
| message contains control characters | http | error | http, validation, sanitization, qq-relay |
| not found | http | warning | http, routing, configuration, qq-relay |
| delivery is still in progress | http | warning | http, retry, transient, qq-relay |
| rate limit exceeded | http | warning | http, rate-limit, retry, transient, qq-relay |