objection-db-errors
objection-db-errors copied to clipboard
UniqueViolationError fails to parse key with line returns
The UniqueViolationError parser uses a regex to determine if the constraint violation is a suitable error.
const UNIQUE_COLUMNS_REGEX = /Key \((.+)\)=\(.+\) already exists/;
The .
character class will not match line break characters as written. Hence a column with a unique index columnA
can have a message like Key (columnA)=(Unique\nColumn) already exists.
, which will not be matched by the regex.
This can be resolved by using a more permissive character class e.g. [\d\D] or single line mode.