apache / superset

Apache Superset is a Data Visualization and Data Exploration Platform
https://superset.apache.org/
Apache License 2.0
61.98k stars 13.59k forks source link

Frequent Error: Unable to migrate query editor state to backend. #30351

Open eduardopilatinuvemshop opened 1 week ago

eduardopilatinuvemshop commented 1 week ago

Bug description

Superset shows message "Unable to migrate query editor state to backend. Superset will retry later. Please contact your administrator if this problem persists." every second

How to reproduce the bug

Cereate a query in MySQL using multiple schemas.

Screenshots/recordings

No response

Superset version

master / latest-dev

Python version

3.10

Node version

Not applicable

Browser

Chrome

Additional context

Custom project structure:

project/
├── docker-compose.yml
├── env
└── superset
    └── superset main repository files

Superset Logs

superset_app          | 2024-09-20 15:53:35,980:WARNING:superset.views.error_handling:Exception
superset_app          | Traceback (most recent call last):
superset_app          |   File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
superset_app          |     rv = self.dispatch_request()
superset_app          |   File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
superset_app          |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
superset_app          |   File "/usr/local/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 177, in wraps
superset_app          |     return f(self, *args, **kwargs)
superset_app          |   File "/app/superset/views/sql_lab/views.py", line 94, in post
superset_app          |     database_id=query_editor["dbId"],
superset_app          | KeyError: 'dbId'
superset_app          | 2024-09-20 15:53:35,981:ERROR:superset.views.error_handling:'dbId'
superset_app          | Traceback (most recent call last):
superset_app          |   File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
superset_app          |     rv = self.dispatch_request()
superset_app          |   File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
superset_app          |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
superset_app          |   File "/usr/local/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 177, in wraps
superset_app          |     return f(self, *args, **kwargs)
superset_app          |   File "/app/superset/views/sql_lab/views.py", line 94, in post
superset_app          |     database_id=query_editor["dbId"],
superset_app          | KeyError: 'dbId'
superset_app          | 187.105.178.160 - - [20/Sep/2024:15:53:35 +0000] "POST /tabstateview/ HTTP/1.1" 500 205 "http://140.238.182.144:8088/sqllab" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
superset_app          | 187.105.178.160 - - [20/Sep/2024:15:53:36 +0000] "GET /api/v1/me/ HTTP/1.1" 200 150 "http://140.238.182.144:8088/sqllab" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"

Custom docker-compose.yml


x-common-build: &common-build
  context: superset
  target: dev

x-depends-on: &depends-on
  redis:
    condition: service_started
  superset_init:
    condition: service_completed_successfully

x-superset-base: &superset-base
  restart: always
  env_file:
    - path: ./superset/docker/.env
      required: true
    - path: ./.env
      required: false
  build:
    <<: *common-build
  volumes:
    - superset:/app/superset_home
    - ./superset/docker:/app/docker
  networks:
    - superset
    - postgres

services:
  redis:
    image: redis:7-alpine
    container_name: superset_cache
    restart: always
    volumes:
      - redis:/data
    networks:
      - superset

  superset_init:
    <<: *superset-base
    container_name: superset_init
    command: ["/app/docker/docker-init.sh"]
    restart: "no"
    healthcheck:
      disable: true

  superset_app:
    <<: *superset-base
    container_name: superset_app
    command: ["/app/docker/docker-bootstrap.sh", "app-gunicorn"]
    ports:
      - 8088:8088
    depends_on:
     <<: *depends-on

  superset-worker:
    <<: *superset-base
    container_name: superset_worker
    command: ["/app/docker/docker-bootstrap.sh", "worker"]
    depends_on:
     <<: *depends-on
    healthcheck:
      test:
        [
          "CMD-SHELL",
          "celery -A superset.tasks.celery_app:app inspect ping -d celery@$$HOSTNAME",
        ]

  superset_worker_beat:
    <<: *superset-base
    container_name: superset_worker_beat
    command: ["/app/docker/docker-bootstrap.sh", "beat"]
    depends_on:
     <<: *depends-on
    healthcheck:
      disable: true

volumes:
  redis:
  superset:

networks:
  superset:
    driver: bridge
    name: superset
  postgres:
    name: postgres
    external: true

.env

DATABASE_HOST=postgres
DATABASE_PASSWORD=[...]
DATABASE_DB=superset

POSTGRES_PASSWORD=${DATABASE_PASSWORD}
POSTGRES_DB=${DATABASE_DB}

FLASK_DEBUG=false
SUPERSET_ENV=production
SUPERSET_LOAD_EXAMPLES=false

SUPERSET_SECRET_KEY=[...]
ADMIN_PASSWORD=[...]

Checklist

eduardopilatinuvemshop commented 1 week ago

Apparently all functions work normally. It just keeps displaying this error all the time.