getsentry / getsentry/sentry

InconsistentMigrationHistory: Migration monitors.0008_fix_processing_error_keys is applied before its dependency

Open
#110,784 4 comments 2 reactions 0 assignees View on GitHub
Bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.