Exporting view to Excel doesn't work

Hi everyone,

I am noticing a bug on version 4.2.

  1. I have a base.
  2. I click “Export View to Excel”.
  3. A small popup window appears with the loading animation
  4. It disappears and nothing happens.

I tried different browsers and it’s the same. I upgraded to 4.2.1 and still the same.
It was working before I upgraded to 4.2.

I see the following error on dtable-events

[2023-12-19 17:42:07,060] task_manager.py[line:357] [INFO] Run task: 65d129ab-3b47-41fe-ba9e-7b5927735c20 <function convert_view_to_execl at 0x7f996b714a60>
[2023-12-19 17:42:07,071] __init__.py[line:912] [ERROR] get nicknames. ERROR: failed to get related users ee67013a-dc86-48c2-b498-27e61f96eb7f <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

[2023-12-19 17:42:07,072] task_manager.py[line:365] [INFO] Run task success: 65d129ab-3b47-41fe-ba9e-7b5927735c20 <function convert_view_to_execl at 0x7f996b714a60> cost 0s

dtable-web:

2023-12-19 17:44:02,256 [WARNING] django.request:224 log_response Not Found: /api/v2.1/workspace/4/dtable/BASE_NAME/export-excel/

This must be a bug or maybe you introduced a change which broke my setup.

I have nginx running in front of the usual seatable docker-compose.yml file.

docker-compose.yml

version: '2.0'
services:
  db:
    image: mariadb:10.4
    container_name: seatable-mysql
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=REMOVED
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /app/seatable/mysql-data:/var/lib/mysql 
    networks:
      - seatable-net
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u", "root", "-p$${MYSQL_ROOT_PASSWORD}"]
      timeout: 20s
      retries: 10
      interval: 5s
      start_period: 20s

  memcached:
    image: memcached:1.5.6
    container_name: seatable-memcached
    restart: unless-stopped
    entrypoint: memcached -m 256
    networks:
      - seatable-net

  redis:
    image: redis:5.0.7
    container_name: seatable-redis
    restart: unless-stopped
    networks:
      - seatable-net
    healthcheck:
      test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
      timeout: 20s
      retries: 10
      interval: 5s
      start_period: 20s

  seatable:
    image: seatable/seatable-developer:4.2.1
    container_name: seatable
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:80"
    volumes:
      - /app/seatable/seatable-data:/shared
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=REMOVED
      - SEATABLE_SERVER_LETSENCRYPT=False
      - TIME_ZONE=Europe/Berlin
    depends_on:
      - db
      - memcached
      - redis
    networks:
      - seatable-net
    healthcheck:
      test: [ "CMD", "curl", "--fail", "http://localhost/"]
      timeout: 20s
      retries: 10
      interval: 5s
      start_period: 20s

networks:
  seatable-net:

nginx.conf

  server
    {
        server_name domain.com;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect off;
        proxy_set_header Host $http_host;

    location / {
        if ($allowed_country = no) {
             return 403;
        }
        proxy_pass         http://127.0.0.1:8080;
        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;

        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        client_max_body_size 100M;
    }

    listen 443 ssl http2; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    access_log      /var/log/nginx/domain.com.access.log;
    error_log       /var/log/nginx/domain.com.error.log;
  }

Is this a verified bug? If not, any idea what the problem might be?

Thanks in advance

It is obviously not a general bug in SeaTable Server because exporting a view to Excel works just fine in SeaTable Cloud.

You are encouraged to test if this is a bug in your setup:

  • Export base to DTABLE file
  • Import in SeaTable Cloud
  • Export View to Excel

If this does not work, another explanation is a corruption in the base which may occur rarely.

I assume you made a mistake when upgrading. (Did you run the upgrade scripts?)

I exported and imported it to Seatable cloud and it works. This is not a problem with the base itself.

Yes, I did import the DB changes as always. All upgrades have been flawless for me, although I only have a single base I use for the whole instance, so can’t really tell if everything worked fine because I am using the basic features.

Does it hurt to rerun the db import for 4.2 again, just in case?

Any other steps to troubleshoot this?

My nginx country filtering blocks the generate call for some reason. Disabling it makes Seatable work again. This is a problem on my setup. Thank you for your support.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.