Skip to content

RDS MySQL 8.0.45 → 8.4.10 PreUpgrade check fails but PrePatchCompatibility.log is never created

0

I restored my production database to a new RDS instance named visualcost-test to test the upgrade. Current version: MySQL Community 8.0.45 When upgrading to 8.4.10 RDS starts the PreUpgrade checks. The event log says: Database instance is in a state that cannot be upgraded: PreUpgrade checks failed: RDS detected incompatibilities when upgrading to MySQL 8.4.10.

For details, see the PrePatchCompatibility.log file. However, PrePatchCompatibility.log is never created. The only log available is error/mysql-error-running.log which contains only ----------------------- END OF LOG ----------------------- I also verified: All application tables use InnoDB. No MyISAM tables. No stored functions. One trigger only. No scheduled events. SHOW WARNINGS returns nothing. lower_case_table_names = 0 sql_mode = NO_ENGINE_SUBSTITUTION character_set_server = utf8mb4 collation_server = utf8mb4_0900_ai_ci Because the compatibility report is missing, it is impossible to determine which incompatibility caused the failure. Is this a known issue with RDS MySQL 8.0.45 → 8.4.10? How can I retrieve the missing PrePatchCompatibility.log or identify the real incompatibility? DB Engine: MySQL Community 8.0.45

Target version: 8.4.10

Region: us-east-2

DB Identifier: visualcost-test

  • If my answer was helpful, I would appreciate it if you could mark it as the accepted answer.

asked a month ago112 views

1 Answer
3

When the PrePatchCompatibility.log fails to appear in the AWS Console, it's typically due to a UI propagation delay or the RDS pre-check script crashing before the log can be surfaced.

You can bypass this issue using two methods:

1. Retrieve via AWS CLI

Often, the file exists on the underlying storage but the Console doesn't display it. Check if you can extract it via the CLI:

Verify if the file exists

aws rds describe-db-log-files --db-instance-identifier visualcost-test --region us-east-2 --query '*[].[LogFileName]' --output text | grep PrePatch

If it exists, download it

aws rds download-db-log-file-portion --db-instance-identifier visualcost-test --log-file-name PrePatchCompatibility.log --starting-token 0 --output text --region us-east-2 > PrePatchCompatibility.log

2. Run the MySQL Shell Upgrade Checker (Recommended)

If the log is genuinely missing, don't rely on the RDS automated check. RDS uses the standard MySQL Shell Upgrade Checker under the hood. You can run this exact same check manually to get the missing error details. Install MySQL Shell 8.4 (locally or on an EC2 instance) and run the utility directly against your 8.0.45 database:

mysqlsh -- util checkForServerUpgrade "admin@<visualcost-test-endpoint>:3306" --target-version=8.4.10

This runs the full compatibility suite and will print the exact issues blocking your upgrade (e.g., reserved keyword conflicts or orphan files). Resolve any findings marked as ERROR and try the RDS upgrade again.

Reference: AWS explicitly recommends using the MySQL Shell utility for 8.4 upgrades: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL.html#USER_UpgradeDBInstance.MySQL.84Upgrade

EXPERT

answered a month ago

EXPERT

reviewed a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.