Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article contains error message numbers and their description for premigration validation.
The following tables provide a comprehensive list of error codes for the migration service feature in Azure Database for PostgreSQL. These error codes help you troubleshoot and resolve issues during the migration process. Each error code has an error message and other details that provide further context and guidance for resolving the issue.
Migration failures often manifest through error messages that indicate connectivity issues. These issues can arise during the data transfer process. When such failures occur, they result in the following error messages:
- server closed the connection unexpectedly
- SSL SYSCALL error: EOF detected
- unexpected EOF on client connection
- couldn't receive data from client: Connection reset by peer
The underlying cause for these symptoms is a connection timeout
. This generally occurs when the server or the client expects to receive data within a certain time frame, but no data is sent or received, leading the connection to time out. The specific reasons for a connection time-out can vary, but common factors include network congestion, misconfigured network settings, or overly aggressive time-out settings.
In the context of migration service in Azure Database for PostgreSQL, a connection time-out between the source and the migration service or between the migration service and the target can interrupt the data transfer process, resulting in the symptoms described above.
To address the connection time-out issues, adjust the TCP parameters on both the source and target servers as follows:
tcp_keepalives_idle=10
tcp_keepalives_interval=10
tcp_keepalives_count=60
These settings help maintain the connection by sending keepalive probes to prevent time-outs due to inactivity. Importantly, modifying these TCP parameters doesn't require a restart of the source or target PostgreSQL instances. Changes can be applied dynamically, allowing for a seamless continuation of service without interrupting the database operations.
- The Migration service encounters a connection termination message.
- Logs display the error:
terminating connection due to idle-in-transaction timeout
.
This error occurs when a database connection remains idle within a transaction for longer than the value specified in the idle_in_transaction_timeout
parameter. PostgreSQL automatically terminates such connections to avoid resource locking issues.
- Set the
idle_in_transaction_timeout
parameter to0
to disable the time-out during the migration process. - Example command to apply this setting:
ALTER SYSTEM SET idle_in_transaction_timeout = 0;
- Ensure to reset this parameter to its original value after the migration to maintain database performance and prevent prolonged idle connections.
The migration process halts unexpectedly. Logs display the error: out of shared memory
.
This error indicates that PostgreSQL has exhausted the shared memory allocated for locks. It typically occurs when the migration process involves many locks beyond the current setting of the max_locks_per_transaction parameter.
- Increase the value of the
max_locks_per_transaction
parameter to accommodate the another locks required during the migration process. - Example command to modify this setting:
ALTER SYSTEM SET max_locks_per_transaction = <<>>;
- Ensure that,
max_locks_per_transaction * max_connections > Number of tables + Number of indexes
- If the issue persists, consider increasing the shared_buffers parameter to ensure sufficient shared memory is available for lock management.
The migration process halts unexpectedly. Logs display the error: pg_restore: error: could not execute query: ERROR: must be superuser to create a base type
.
To create a new base type, you must be a superuser (This restriction is made because an erroneous type definition could confuse or even crash the server).
- Custom base type has to be deleted and/or replaced by a recognized base type.
- More details here.
Error Code | Error message | Resolution |
---|---|---|
603000 | Connection failed. Connection to the server {serverName} was unsuccessful. Ensure that the source server is reachable from the target or runtime server. |
Refer to Network guide for debugging connectivity issues. |
603001 | SSL Configuration Error. The server {serverName} doesn't support SSL. Check SSL settings. Set SSL mode to prefer and retry the migration. |
Refer to Network guide for debugging connectivity issues. |
603100 | Authentication failed. The password for server {serverName} is incorrect. Enter the correct password and retry the migration. |
N/A |
603101 | Database exists in target. Database {dbName} exists on the target server. Ensure the target server doesn't have the database and retry the migration. |
N/A |
603102 | Source Database Missing. Database {dbName} doesn't exist on the source server. Provide a valid database and retry the migration. |
N/A |
603103 | Missing Microsoft Entra role. Microsoft Entra role {roleNames} is missing on the target server. Create the Entra role and retry the migration. |
N/A |
603104 | Missing Replication Role. User {0} doesn't have the replication role on server {1} . Grant the replication role before retrying migration. |
Use ALTER ROLE <rolename> WITH REPLICATION; to grant the required permission. |
603105 | GUC Settings Error. Insufficient replication slots on the source server for migration. Increase the max_replication_slots GUC parameter to {0} or higher. |
Source server doesn't have sufficient replication slots available to perform online migration. Use this query SELECT * FROM pg_replication_slots WHERE active = false AND slot_type = 'logical'; to get the list of inactive replication slots and drop them using SELECT pg_drop_replication_slot('slot_name'); before initiating the migration. Alternatively, set the 'max_replication_slots' server parameter to {0} or higher. Ensure that the max_wal_senders parameter is also changed to be greater than or equal to the max_replication_slots' parameter . |
603106 | GUC Settings Error. The max_wal_senders GUC parameter is set to {0} . Ensure it matches or exceeds the 'max_replication_slots' value. |
N/A |
603107 | GUC Settings Error. Source server WAL level parameter is set to {0} . Set GUC parameter WAL level to be 'logical'. |
N/A |
603108 | Extensions allowlist required. Extensions {0} couldn't be installed on the target server because they're not allowlisted. Allowlist the extensions and retry the migration. |
Set the allowlist by following the steps mentioned in PostgreSQL extensions. |
603109 | Shared preload libraries configuration error. Add allowlisted extensions {0} to 'shared_preload_libraries' on the target server and retry the migration. |
Set the shared preload libraries by following the steps mentioned in PostgreSQL extensions. This requires a server restart. |
603110 | Insufficient privileges. Migration user lacks necessary permissions for database access. Ensure that the migration user is owner of source databases and has both read and write privileges and retry the migration. | N/A |
603111 | Target database cleanup failed. Unable to terminate active connections on the target database during the premigration phase. Grant pg_signal_backend role to migration user and retry the migration. | Add pg_signal_backend role to migration user using the command 'GRANT pg_signal_backend to <migration_user>' |
603112 | GUC settings error. Failed to set default_transaction_read_only GUC parameter to off. Ensure that user write access is properly set and retry the migration. | Set 'default_transaction_read_only' to OFF on source server via Azure portal or through psql command(for example, ALTER SYSTEM SET default_transaction_read_only = off). |
603113 | Cutover failure. Cutover can't be initiated for database '{dbName}' as the migration has already been with the status Completed/Failed/Canceled. | N/A |
603114 | Cutover failure. Cutover can't be initiated for database '{dbName}' for migration mode offline. | N/A |
603115 | Missing user privileges. Migration user '{0}' isn't a member of azure_pg_admin role. Add necessary privileges on target server and retry the migration. | N/A |
603116 | Missing user privileges. Migration user '{0}' doesn't have the create role privilege. Add necessary privileges on target server and retry the migration. | Run query ALTER ROLE <rolename> WITH CREATEROLE; on target server. |
603117 | Missing user privileges. Migration user '{0}' lacks necessary privileges to delete the '{dbName}' database on the target server. Drop the database manually from the target server and retry the migration. | N/A |
603400 | Unsupported source version. Migration of PostgreSQL versions below {0} is unsupported. |
You must use another migration method. |
603401 | Collation mismatch. Collation {0} in database {1} isn't present on target server. |
N/A |
603402 | Collation mismatch. Collation {0} for table {1} in column {2} isn't present on target server. |
Contact Azure support to add the necessary collations. |
603403 | Collation mismatch. Source database contains user-defined collations. Drop these collations and retry the migration. | N/A |
603404 | Unsupported OIDs Detected. Tables with 'WITH OIDs' detected in database {0} . They aren't supported in PostgreSQL version 12 and later. |
Visit PostgreSQL release notes. |
603405 | Unsupported Extensions. The migration service doesn't support the migration of databases with {0} extensions on the target server. |
N/A |
603406 | Unsupported Extensions. Target PostgreSQL {0} supports POSTGIS version 3.2.3, which is incompatible with source's {1} . |
Recommend target server upgrade to version 11. Visit PostGIS breaking changes. |
603407 | Extension Schema Error. Extensions {0} located in the system schema on the source server are unsupported on the target server. Drop and recreate the extensions in a nonsystem schema, then retry the migration. |
Visit PostgreSQL extensions. |
603408 | Unsupported Extensions. Target server version 16 doesn't support {0} extensions. Migrate to version 15 or lower, then upgrade once the extensions are supported. |
N/A |
603409 | User-defined casts present. Source database {0} contains user-defined casts that can't be migrated to the target server. |
N/A |
603410 | System table permission error. Users have access to system tables like pg_authid and pg_shadow that can't be migrated to the target. Revoke these permissions and retry the migration. | Validating the default permissions granted to pg_catalog tables/views (such as pg_authid and pg_shadow ) is essential. However, these permissions can't be assigned to the target. Specifically, User {1} possesses {2} permissions, while User {3} holds {4} permissions. For a workaround, visit User, Roles, and Permissions |
603413 | Unsupported language(s). The migration service does not support the migration of databases with {0} language(s) on the target server. Remove the language(s) and its implemented function(s). |
The target server does not support the unsupported languages. Try disabling or removing the respective language on the source server before migrating to the target server. |
603700 | Target database cleanup failed. Unable to terminate active connections on the target database during the pre-migration/post-migration phase. | N/A |
603701 | Internal server error. Failed to create roles on the target server. | Contact Azure support for further analysis. |
603702 | Internal server error. Failed to dump roles from source server. | Contact Azure support for further analysis. |
603703 | Internal server error. Failed to edit the global role dump file. | Contact Azure support for further analysis. |
603704 | Internal server error. Failed to make all source roles a member of target migration user. | Contact Azure support for further analysis. |
603705 | Internal server error. Failed to restore grants/revokes. | Contact Azure support for further analysis. |
603706 | Internal server error. Failed to clean up the target server migration user. Your target migration user can be part of multiple roles. Remove all unnecessary roles from target server migration user and retry the migration. | Contact Azure support for further analysis. |
603707 | Internal server error. Failed to grant azure_pg_admin to the source server admin user. | Contact Azure support for further analysis. |
603708 | Internal server error. Failed to alter the owner of public schema to azure_pg_admin in database '{dbName}'. Change the owner of public schema to azure_pg_admin manually and retry the migration. | Contact Azure support for further analysis. |
603709 | Migration setup failed. | Contact Azure support for further analysis. |