Your Setup:
- Self-hosted
- SeaTable Version (only necessary for self-hosted):
5.3.12
Describe the Problem/Error/Question:
Importing CSV Files only work for either new tables or new Bases.
Importing into an existing tables (no matter the setup) fails with the error “File test.json not found.”.
I can reproduce that with a simple test.csv file using the “Table > Import new data from xIsx or csv file” function. Example:
Name,Land
Test GmbH,DE
Max Muster GmbH,DE
Max Muster Holding GmbH,DE
Browser Console:
16:40:51.848 XHRGET
https://domain.de/api/v2.1/workspace/1/excel-common/get-parsed-file/?file_name=test&dtable_uuid=7cca3366-c10d-437e-8876-78d8e2fc4109
[HTTP/2 404 1760ms]
GET
https://domain.de/api/v2.1/workspace/1/excel-common/get-parsed-file/?file_name=test&dtable_uuid=7cca3366-c10d-437e-8876-78d8e2fc4109
Status
404
VersionHTTP/2
Transferred721 B (41 B size)
Referrer Policysame-origin
DNS ResolutionSystem
access-control-allow-headers
Content-Type, Accept, authorization, token, deviceType, x-seafile-otp
access-control-allow-methods
GET,POST,PUT,DELETE,OPTIONS
access-control-allow-origin
https://api.seatable.com
allow
GET, HEAD, OPTIONS
alt-svc
h3=":443"; ma=2592000
content-language
en
content-length
41
content-type
application/json
date
Mon, 04 Aug 2025 14:40:51 GMT
referrer-policy
same-origin
server
nginx
strict-transport-security
max-age=31536000; includeSubdomains; preload
vary
Accept-Language, Cookie
via
1.1 Caddy
x-content-type-options
nosniff
X-Firefox-Spdy
h2
x-frame-options
SAMEORIGIN
x-xss-protection
1; mode=block
Accept
application/json, text/plain, */*
Accept-Encoding
gzip, deflate, br, zstd
Accept-Language
en-US,en;q=0.5
Cache-Control
no-cache
Connection
keep-alive
Cookie
_ga_VJH9K6JM76=GS2.1.s1753689355$o59$g0$t1753689355$j60$l0$h0; _ga=GA1.1.329520291.1717596813; _tt_enable_cookie=1; _ttp=G5J4pQhcZQiJQlxvYhg0ByH3SXo.tt.1; intercom-device-id-lios09xl=18a04a48-75d3-4504-a13d-6d9afe8cef0b; amp_c96acd=IBlsaEL7MDeIqIpbX6CRZ8.amtAam9uYXNrcmFuemVyLmRl..1iqnplfrj.1iqnplfrj.1t.0.1t; _ga_MKRK559SRB=GS2.1.s1746702874$o8$g1$t1746702877$j0$l0$h0; amp_c96acd_domain.de=IBlsaEL7MDeIqIpbX6CRZ8.amtAam9uYXNrcmFuemVyLmRl..1idkckuos.1idkcmvb9.1j.0.1j; intercom-id-lios09xl=01344911-8bab-429…WSe0J8lc8IqnstRLS7Jx8NcakHo_posthog=%7B%22distinct_id%22%3A%22d160e539d2f1a627c61dec8128071eca3529ebaa5ae124b8b92c197acd24da57%23d618c897-535c-4bfd-a798-71582f31d5f8%22%2C%22%24sesid%22%3A%5B1754298171873%2C%2201987451-c1e2-7a65-b092-b8337347927c%22%2C1754298171873%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22%24direct%22%2C%22u%22%3A%22https%3A%2F%2Fn8n.domain.de%2Fsetup%22%7D%7D; dtable_csrftoken=cqlNynpIWxVcPiVfIkfsCThVIaaPjo4I; sessionid=lux6tpp8gn8hnzzjttnvvtgbwwecoggm
DNT
1
Host
domain.de
Pragma
no-cache
Referer
https://domain.de/workspace/1/dtable/test/?tid=Z9E2&vid=0000
Sec-Fetch-Dest
empty
Sec-Fetch-Mode
cors
Sec-Fetch-Site
same-origin
TE
trailers
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:141.0) Gecko/20100101 Firefox/141.0
X-CSRFToken
cqlNynpIWxVcPiVfIkfsCThVIaaPjo4I
I’m not sure if that’s related to caddy, because that’s the only thing I changed in my setup, because I already have a caddy service running on my server, so I didn’t use the provided lucaslorentz/caddy-docker-proxy container.
This is my caddy config, so I ported all the labels to a normal Caddyfile. Caddy also doesn’t show any errors, so I guess it’s correct (also import to a new table or new base is working correct).
# allow only local network
(external_block) {
@not_local not remote_ip 192.168.1.0/24 100.64.0.0/24 127.0.0.1/8 ::1/128 2606:6d00:167:7d00::/64 fe80::/10
respond @not_local 403
}
https://domain.de {
import external_block
tls internal
reverse_proxy seatable-server:80 {
flush_interval -1
}
# Security headers
header {
Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
Referrer-Policy "same-origin"
X-XSS-Protection "1; mode=block"
X-Content-Type-Options "nosniff"
X-Frame-Options "SAMEORIGIN"
Set-Cookie "(.*)" "$1; SameSite=None; Secure"
Content-Security-Policy `
block-all-mixed-content;
default-src 'none';
style-src 'unsafe-inline' 'self';
script-src 'unsafe-inline' 'unsafe-eval' 'self';
script-src-elem 'unsafe-inline' 'self' domain.de:6233 maps.googleapis.com unpkg.com;
font-src 'self' data: unpkg.com cdn.tldraw.com;
img-src 'self' data: blob: https: market.seatable.io market.seatable.com mt0.google.com maps.googleapis.com maps.gstatic.com;
media-src 'self';
form-action 'self' domain.de:6232;
connect-src 'self' market.seatable.io market.seatable.com https: ws: blob: data:;
frame-src 'self' domain.de:6232 domain.de:6233;
frame-ancestors 'self';
worker-src 'self' blob:;
manifest-src 'self';
object-src 'self';
base-uri 'self'
`
}
# Allow iframes for specific routes
route /dtable/view-external-links/* {
header X-Frame-Options "ALLOWALL"
header -Content-Security-Policy
reverse_proxy seatable-server:80
}
route /dtable/external-links/* {
header X-Frame-Options "ALLOWALL"
header -Content-Security-Policy
reverse_proxy seatable-server:80
}
route /dtable/external-apps/* {
header X-Frame-Options "ALLOWALL"
header -Content-Security-Policy
reverse_proxy seatable-server:80
}
route /dtable/forms/* {
header X-Frame-Options "ALLOWALL"
header -Content-Security-Policy
reverse_proxy seatable-server:80
}
route /apps/custom/* {
header X-Frame-Options "ALLOWALL"
header -Content-Security-Policy
reverse_proxy seatable-server:80
}
route /external-apps/* {
header X-Frame-Options "ALLOWALL"
header -Content-Security-Policy
reverse_proxy seatable-server:80
}
}
# HTTP to HTTPS redirect for Seatable
http://domain.de {
redir https://{host}{uri} permanent
}
Any help welcome.