InconsistentMigrationHistory: Migration monitors.0008_fix_processing_error_keys is applied before its dependency
- Dominant language
- Python
- Stars
- 44.8k
- Forks
- 4.9k
- Avg merge
- 21h 10m
- Merged PRs (30d)
- 635
Description
### Environment
self-hosted (https://develop.sentry.dev/self-hosted/)
### Steps to Reproduce
When upgrading from 26.2.1 to 26.3.0, the following appears part way through running `./install.sh` at which point it exits:
```
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration monitors.0008_fix_processing_error_keys is applied before its dependency sentry.1040_drop_fk_projecttemplate on database 'default'.
Error in install/set-up-and-migrate-database.sh:23.
'$dcr web upgrade --create-kafka-topics' exited with status 1
-> ./install.sh:main:44
--> install/set-up-and-migrate-database.sh:source:23
install/error-handling.sh: line 82: /usr/bin/docker: Argument list too long
```
full verbose error:
```
▶ Setting up / migrating database ...
Container sentry-self-hosted-postgres-1 Running
Container sentry-self-hosted-postgres-1 Waiting
Container sentry-self-hosted-postgres-1 Healthy
Container sentry-self-hosted-postgres-1 Running
Container sentry-self-hosted-pgbouncer-1 Creating
Container sentry-self-hosted-pgbouncer-1 Created
Container sentry-self-hosted-postgres-1 Waiting
Container sentry-self-hosted-postgres-1 Healthy
Container sentry-self-hosted-pgbouncer-1 Starting
Container sentry-self-hosted-pgbouncer-1 Started
Container sentry-self-hosted-pgbouncer-1 Waiting
Container sentry-self-hosted-postgres-1 Waiting
Container sentry-self-hosted-postgres-1 Healthy
Container sentry-self-hosted-pgbouncer-1 Healthy
Container sentry-self-hosted-symbolicator-1 Creating
Container sentry-self-hosted-redis-1 Running
Container sentry-self-hosted-seaweedfs-1 Running
Container sentry-self-hosted-postgres-1 Running
Container sentry-self-hosted-smtp-1 Creating
Container sentry-self-hosted-clickhouse-1 Running
Container sentry-self-hosted-memcached-1 Creating
Container sentry-self-hosted-kafka-1 Running
Container sentry-self-hosted-pgbouncer-1 Running
Container sentry-self-hosted-snuba-api-1 Creating
Container sentry-self-hosted-symbolicator-1 Created
Container sentry-self-hosted-memcached-1 Created
Container sentry-self-hosted-smtp-1 Created
Container sentry-self-hosted-snuba-api-1 Created
Container sentry-self-hosted-memcached-1 Starting
Container sentry-self-hosted-postgres-1 Waiting
Container sentry-self-hosted-symbolicator-1 Starting
Container sentry-self-hosted-kafka-1 Waiting
Container sentry-self-hosted-redis-1 Waiting
Container sentry-self-hosted-clickhouse-1 Waiting
Container sentry-self-hosted-smtp-1 Starting
Container sentry-self-hosted-memcached-1 Started
Container sentry-self-hosted-smtp-1 Started
Container sentry-self-hosted-postgres-1 Healthy
Container sentry-self-hosted-kafka-1 Healthy
Container sentry-self-hosted-redis-1 Healthy
Container sentry-self-hosted-clickhouse-1 Healthy
Container sentry-self-hosted-snuba-api-1 Starting
Container sentry-self-hosted-symbolicator-1 Started
Container sentry-self-hosted-snuba-api-1 Started
Container sentry-self-hosted-pgbouncer-1 Waiting
Container sentry-self-hosted-redis-1 Waiting
Container sentry-self-hosted-kafka-1 Waiting
Container sentry-self-hosted-kafka-1 Healthy
Container sentry-self-hosted-pgbouncer-1 Healthy
Container sentry-self-hosted-redis-1 Healthy
Container sentry-self-hosted-web-run-78893802ba57 Creating
Container sentry-self-hosted-web-run-78893802ba57 Created
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Checking for migrations to run for default
Running migrations for default
Traceback (most recent call last):
File "/.venv/bin/sentry", line 4, in
raise SystemExit(main())
~~~~^^
File "/usr/src/sentry/src/sentry/runner/main.py", line 143, in main
func(**kwargs)
~~~~^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/click/core.py", line 1442, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/click/core.py", line 1363, in main
rv = self.invoke(ctx)
File "/.venv/lib/python3.13/site-packages/click/core.py", line 1830, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/click/core.py", line 1226, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/click/decorators.py", line 34, in new_func
return f(get_current_context(), *args, **kwargs)
File "/usr/src/sentry/src/sentry/runner/decorators.py", line 34, in inner
return ctx.invoke(f, *args, **kwargs)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
File "/usr/src/sentry/src/sentry/runner/commands/upgrade.py", line 168, in upgrade
_upgrade(
~~~~~~~~^
not noinput,
^^^^^^^^^^^^
...<5 lines>...
create_kafka_topics,
^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/sentry/src/sentry/runner/commands/upgrade.py", line 83, in _upgrade
dj_call_command(
~~~~~~~~~~~~~~~^
"migrate",
^^^^^^^^^^
...<3 lines>...
verbosity=verbosity,
^^^^^^^^^^^^^^^^^^^^
)
^
File "/.venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 194, in call_command
return command.execute(*args, **defaults)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/django/core/management/base.py", line 464, in execute
output = self.handle(*args, **options)
File "/.venv/lib/python3.13/site-packages/django/core/management/base.py", line 111, in wrapper
res = handle_func(*args, **kwargs)
File "/.venv/lib/python3.13/site-packages/django/core/management/commands/migrate.py", line 117, in handle
executor.loader.check_consistent_history(connection)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/.venv/lib/python3.13/site-packages/django/db/migrations/loader.py", line 327, in check_consistent_history
raise InconsistentMigrationHistory(
...<8 lines>...
)
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration monitors.0008_fix_processing_error_keys is applied before its dependency sentry.1040_drop_fk_projecttemplate on database 'default'.
Error in install/set-up-and-migrate-database.sh:23.
'$dcr web upgrade --create-kafka-topics' exited with status 1
-> ./install.sh:main:44
--> install/set-up-and-migrate-database.sh:source:23
install/error-handling.sh: line 82: /usr/bin/docker: Argument list too long
```
up until now, all upgrades have gone smoothly, so seems to be a bug/regression?
### Expected Result
Expected `./install.sh` to complete with a fully useable Sentry.
### Actual Result
Fails to complete `./install.sh` and therefore Sentry inaccessible.
### Product Area
Unknown
### Link
_No response_
### DSN
_No response_
### Version
26.3.0
Contributor guide
Research direction
Start with ./install.sh and install/set-up-and-migrate-database.sh:23, then inspect the monitors.0008_fix_processing_error_keys and sentry.1040_drop_fk_projecttemplate migrations named in the error. Reproduce the 26.2.1-to-26.3.0 upgrade and trace the migration history failure. Done means the upgrade completes and Sentry is usable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- django, docker, python
- Domain
- backend, databases, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100