a month ago
I tried to update from 0.301.0 to 2026.04.0, and got healthcheck errors.
Then, the Railway agent suggested setting the image to 0.262.3, so I did that, and got more errors.
I'm not back to setting the image to latest, and got the following error:
[Nest] 3 - 04/15/2026, 2:51:09 AM ERROR [ExceptionHandler] The migration directory is corrupt, the following files are missing: nc_015_managed_apps, nc_016_automation_error_notifications, nc_017_add_canonical_email_to_users, nc_018_add_enabled_to_filter_exp_v2, nc_019_sandboxes, nc_020_add_cell_coloring_fields_to_row_color_conditions, nc_021_scim_support, nc_022_record_templates, nc_023_rls_policies, nc_202601010000_placeholder, nc_202602250000_outline_view, nc_202602250001_button_filter, nc_202602260000_rename_outline_to_list_view, nc_202602260636_view_sections, nc_202602251401_links_v2, nc_202602270448_map_view_columns_add_source_id, nc_202602270729_timeline_view, nc_202602260000_unify_ce_roles, nc_202603020000_hook_error_notifications, nc_202603020001_teams_hierarchy, nc_202603020002_chat, nc_202603060621_form_page_breaks, nc_202603050000_docs, nc_202603050001_file_ref_doc_idx, nc_202603090001_chat_session_meta, nc_202603110001_chat_session_base_id, nc_202603170000_form_view_expires_at, nc_202603170001_workflow_draft_reminder, nc_202603090002_date_dependency, nc_202603230000_subscription_last_paid_seat_count, nc_202603301109_fine_grained_api_tokens, nc_202603310000_integration_links, nc_202604030000_installations_add_fk_user_id, nc_202604040000_gcp_marketplace, nc_202604071200_default_org, nc_202604071201_scim_config_default_role, nc_202604100000_audit_org_id
Error: The migration directory is corrupt, the following files are missing: nc_015_managed_apps, nc_016_automation_error_notifications, nc_017_add_canonical_email_to_users, nc_018_add_enabled_to_filter_exp_v2, nc_019_sandboxes, nc_020_add_cell_coloring_fields_to_row_color_conditions, nc_021_scim_support, nc_022_record_templates, nc_023_rls_policies, nc_202601010000_placeholder, nc_202602250000_outline_view, nc_202602250001_button_filter, nc_202602260000_rename_outline_to_list_view, nc_202602260636_view_sections, nc_202602251401_links_v2, nc_202602270448_map_view_columns_add_source_id, nc_202602270729_timeline_view, nc_202602260000_unify_ce_roles, nc_202603020000_hook_error_notifications, nc_202603020001_teams_hierarchy, nc_202603020002_chat, nc_202603060621_form_page_breaks, nc_202603050000_docs, nc_202603050001_file_ref_doc_idx, nc_202603090001_chat_session_meta, nc_202603110001_chat_session_base_id, nc_202603170000_form_view_expires_at, nc_202603170001_workflow_draft_reminder, nc_202603090002_date_dependency, nc_202603230000_subscription_last_paid_seat_count, nc_202603301109_fine_grained_api_tokens, nc_202603310000_integration_links, nc_202604030000_installations_add_fk_user_id, nc_202604040000_gcp_marketplace, nc_202604071200_default_org, nc_202604071201_scim_config_default_role, nc_202604100000_audit_org_id
at validateMigrationList (/usr/src/app/node_modules/knex/lib/migrations/migrate/Migrator.js:567:11)
at Migrator.latest (/usr/src/app/node_modules/knex/lib/migrations/migrate/Migrator.js:69:7)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async MetaService.init (/usr/src/app/docker/main.js:1375:15571)
at async InstanceWrapper.useFactory [as metatype] (/usr/src/app/docker/main.js:1532:338339)
at async Injector.instantiateClass (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:377:37)
at async callback (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:65:34)
at async Injector.resolveConstructorParams (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:145:24)
at async Injector.loadInstance (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:70:13)
at async Injector.loadProvider (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:98:9)
4 Replies
Status changed to Open Railway • about 1 month ago
a month ago
Hello candide,
the root cause is clear from your logs , you downgraded to 0.262.3 after already running migrations from 0.301.0, so knex recorded those migrations in the db but that older image didn't have the files, corrupting the state , going back to latest didn't fix it because the db is still in that broken state
the safest fix is to go to the nocodb github and open an issue with your exact error log, because the team has dealt with this scenario before and can tell you precisely which rows to clean in the migration tracking table without risking data loss. don't let anyone tell you to downgrade nocodb versions, it's a one way road once migrations have run
Hope this help you :)
domehane
Hello **candide,** the root cause is clear from your logs , you downgraded to 0.262.3 after already running migrations from 0.301.0, so knex recorded those migrations in the db but that older image didn't have the files, corrupting the state , going back to latest didn't fix it because the db is still in that broken state the safest fix is to go to the nocodb github and open an issue with your exact error log, because the team has dealt with this scenario before and can tell you precisely which rows to clean in the migration tracking table without risking data loss. don't let anyone tell you to downgrade nocodb versions, it's a one way road once migrations have run Hope this help you :)
a month ago
I'm hoping you could create the same response majic you did for candide. I'm new to this environment and do not understand the codes or what most error messages are, but I received this "ERROR: failed to build: failed to solve: secret healthcheck: not found" when deploying the backend. Any advice?
5 days ago
Unfortunately, I'm still running into the errors a month later, and haven't heard from the NocoDB team via Github or Discord. I tried to deploy a fresh template, and it crashed, giving the same errors.
5 days ago
I've solved my issue!
I had to get rid of the following env vars:
NC_REDIS_URL="${{Redis.REDIS_PRIVATE_URL}}?family=6"
REDIS_URL="${{Redis.REDIS_PRIVATE_URL}}"
REDISHOST="${{Redis.REDISHOST}}"
REDISPASSWORD="${{Redis.REDISPASSWORD}}"
REDISPORT="${{Redis.REDISPORT}}"
REDISUSER="${{Redis.REDISUSER}}"
PGDATABASE="${{Postgres.PGDATABASE}}"
PGHOST="${{Postgres.PGHOST}}"
PGPASSWORD="${{Postgres.PGPASSWORD}}"
PGPORT="${{Postgres.PGPORT}}"
PGUSER="${{Postgres.PGUSER}}"
And add the following:
NC_CACHE_REDIS_URL="${{Redis.REDIS_URL}}"
My deploy no longer crashes, and I'm now able to log in, although I have other issues to solve now.
Status changed to Solved Railway • 5 days ago