"Internal server error" when admin creates new bases/tablers

Environment
Docker Standalone Deployment
Developer Edition
Version 2.6.0

Problem Description
The tables created by the administrator user cannot be opened, prompting “Internal server error”, and this user (the administrator user) cannot create new tables either, and “error” is prompted when creating new tables.

Other users are not affected, they can create new tables and open the tables they created normally, but they cannot open the tables created and shared by this admin account, and they also prompt “internal server error” when opening them.

dtable-server.log

[2022] [ERROR] http-service.js[134] - dtable_uuid: 743f7fadd7104ac49bd81b9fcacef907 - Dtable load failed 743f7fadd7104ac49bd81b9fcacef907
[2022] [ERROR] http-service.js[134] - dtable_uuid: c8553998c57142b1b4897b78450a2d88 - Dtable load failed c8553998c57142b1b4897b78450a2d88
[2022] [INFO] dtable-manager.js[420] - 0 dtables saved.
[2022] [ERROR] http-service.js[134] - dtable_uuid: 85efa12c06254baf894537ef56648785 - Dtable load failed 85efa12c06254baf894537ef56648785

Console

GET http://table.***.com/dtable-server/dtables/743f7fad-d710-4ac4-9bd8-1b9fcacef907?lang=zh-cn 500 (Internal Server Error)

Screenshots


Related questions

Please disable all extensions in your Chrome browser and try again.

No plug-ins loaded Screenshots @rdb

Is there a reason you use http? Are you sure your nginx / seatable configuration is correct? Please post your conf files here (Important: Redact your passwords before posting)

Does the admin use the same computer/browser as the other users?

Re: Using the same computer and browser

This is my configuration file👇

dtable_web_settings.py


DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',

        'HOST': 'db',

        'PORT': '3306',

        'USER': 'root',

        'PASSWORD': '****',

        'NAME': 'dtable_db',

        'OPTIONS': {

            'charset': 'utf8mb4',

        },

    }

}

CACHES = {

    'default': {

        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',

        'LOCATION': 'memcached',

    },

    'locmem': {

        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',

    },

}

COMPRESS_CACHE_BACKEND = 'locmem'

SECRET_KEY = '***'

# for dtable-server

DTABLE_PRIVATE_KEY = '***'

DTABLE_SERVER_URL = 'http://table.MY_DOMAIN.com/dtable-server/'

DTABLE_SOCKET_URL = 'http://table.MY_DOMAIN.com/'

# for dtable-web

DTABLE_WEB_SERVICE_URL = 'http://table.MY_DOMAIN.com/'

# for dtable-db

DTABLE_DB_URL = 'http://table.MY_DOMAIN.com/dtable-db/'

# for seaf-server

FILE_SERVER_ROOT = 'http://table.MY_DOMAIN.com/seafhttp/'

ENABLE_USER_TO_SET_NUMBER_SEPARATOR = True

PLUGINS_REPO_ID='3c16c186-b79f-4cd6-9b55-9868fcef818a'

dtable-db.conf


[general]

host = 127.0.0.1

port = 7777

log_dir = /opt/seatable/logs

[storage]

data_dir = /opt/seatable/db-data

[dtable cache]

private_key = "***"

dtable_server_url = "http://127.0.0.1:5000"

total_cache_size = 100

[database]

host = "db"

user = root

password = "***"

db_name = dtable_db

dtable-db.conf


[general]

host = 127.0.0.1

port = 7777

log_dir = /opt/seatable/logs

[storage]

data_dir = /opt/seatable/db-data

[dtable cache]

private_key = "***"

dtable_server_url = "http://127.0.0.1:5000"

total_cache_size = 100

[database]

host = "db"

user = root

password = "***"

db_name = dtable_db

dtable_server_config.json


{

    "host": "db",

    "user": "root",

    "password": "***",

    "database": "dtable_db",

    "port": 3306,

    "private_key": "***",

    "redis_host": "redis",

    "redis_port": 6379,

    "redis_password": ""

}

nginx.conf


log_format seatableformat '\$http_x_forwarded_for \$remote_addr [\$time_local] "\$request" \$status \$body_bytes_sent "\$http_referer" "\$http_user_agent" \$upstream_response_time';

upstream dtable_servers {

    server 127.0.0.1:5000;

    keepalive 15;

}

server {

    server_name table.MY_DOMAIN.com;

    listen 80;

    # for letsencrypt

    location /.well-known/acme-challenge/ {

        alias /var/www/challenges/;

        try_files $uri =404;

    }

    proxy_set_header X-Forwarded-For $remote_addr;

    location / {

        add_header Access-Control-Allow-Origin *;

        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;

        add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";

        if ($request_method = 'OPTIONS') {

            add_header Access-Control-Allow-Origin *;

            add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;

            add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";

            return 204;

        }

        proxy_pass         http://127.0.0.1:8000;

        proxy_set_header   Host $host;

        proxy_set_header   X-Real-IP $remote_addr;

        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header   X-Forwarded-Host $server_name;

        proxy_read_timeout  1200s;

       

        # used for view/edit office file via Office Online Server

        client_max_body_size 0;

       

        access_log      /opt/nginx-logs/dtable-web.access.log seatableformat;

        error_log       /opt/nginx-logs/dtable-web.error.log;

    }

    location /seafhttp {

        rewrite ^/seafhttp(.*)$ $1 break;

        proxy_pass http://127.0.0.1:8082;

        client_max_body_size 0;

        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_request_buffering off;

        proxy_connect_timeout  36000s;

        proxy_read_timeout  36000s;

        proxy_send_timeout  36000s;

        send_timeout  36000s;

        access_log      /opt/nginx-logs/seafhttp.access.log seatableformat;

        error_log       /opt/nginx-logs/seafhttp.error.log;

    }

    location /media {

        root /opt/seatable/seatable-server-latest/dtable-web;

    }

    location /socket.io {

        proxy_pass http://dtable_servers;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection 'upgrade';

        proxy_redirect off;

        proxy_buffers 8 32k;

        proxy_buffer_size 64k;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header Host $http_host;

        proxy_set_header X-NginX-Proxy true;

   

        access_log      /opt/nginx-logs/socket-io.access.log seatableformat;

        error_log       /opt/nginx-logs/socket-io.error.log;

    }

    location /dtable-server {

        add_header Access-Control-Allow-Origin *;

        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;

        add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";

        if ($request_method = 'OPTIONS') {

            add_header Access-Control-Allow-Origin *;

            add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;

            add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";

            return 204;

        }

        rewrite ^/dtable-server/(.*)$ /$1 break;

        proxy_pass         http://dtable_servers;

        proxy_redirect     off;

        proxy_set_header   Host              $host;

        proxy_set_header   X-Real-IP         $remote_addr;

        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;

        proxy_set_header   X-Forwarded-Host  $server_name;

        proxy_set_header   X-Forwarded-Proto $scheme;

        # used for import excel

        client_max_body_size 100m;

        access_log      /opt/nginx-logs/dtable-server.access.log seatableformat;

        error_log       /opt/nginx-logs/dtable-server.error.log;

    }

    location /dtable-db/ {

        add_header Access-Control-Allow-Origin *;

        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;

        add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";

        if ($request_method = 'OPTIONS') {

            add_header Access-Control-Allow-Origin *;

            add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;

            add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";

            return 204;

        }

        proxy_pass         http://127.0.0.1:7777/;

        proxy_redirect     off;

        proxy_set_header   Host              $host;

        proxy_set_header   X-Real-IP         $remote_addr;

        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;

        proxy_set_header   X-Forwarded-Host  $server_name;

        proxy_set_header   X-Forwarded-Proto $scheme;

        access_log      /opt/nginx-logs/dtable-db.access.log seatableformat;

        error_log       /opt/nginx-logs/dtable-db.error.log;

    }

}

Let me try to understand: When you log in as admin user, you cannot create bases. The system throws an internal server error. When you log out and log back in as another user (using the same computer and the same browser), then you can create bases?

If this is correct, please make another user admin and try if the problem persists with this user too.

I think this problem may not be related to the administrator account.

Now there is a user, I call it “A”. The tables created by this “A” user used to be opened normally. Now this “A” user will open the table he created before with “Internal server error”. After “A” user shared the table he created with other users, other users can’t open it either and will see the same prompt “Internal server error”. And this “A” user will be prompted with “Error” when creating a new table.

You did not reply to the questions.

RE: I tried to set another user as administrator and switch to that account, the account can create bases normally, but when I open the base created and shared by the previous user, I still get “Internal server error” (the above actions are on the same computer and browser)