Skip to content

Troubleshooting ​

中文

Find the symptom, read the cause, and apply the fix. If your issue is not listed, open an issue with details on what you did and what happened.

Installing and launching ​

SymptomCause and fix
The app will not open on an Intel MacThe macOS release is built for Apple silicon only. Build from source on Intel
Shortcuts in these docs do nothing on Windows or LinuxRead Ctrl for ⌘: ⌘↵ is Ctrl+Enter there
ducklocal: command not foundThe disk image installs the app, not a command. Link the binary onto your PATH
The terminal is busy while the window is openOpening the GUI from a terminal runs it in the foreground. Launch from Applications instead, or leave that terminal to it
History, settings or remembered files stop being savedA second DuckLocal is running and holds the app-data file. Quit the other one and relaunch
DuckLocal quit unexpectedly last timeIt crashed, and saved a report in the logs folder. Click Show report, and attach it to an issue — see where things are stored
Update check failedHover it for the reason: offline, a proxy, or a download that did not match its checksum. Click to try again, or download the release from GitHub — see Update check

Opening data ​

SymptomCause and fix
File not found on a path you namedThe path does not exist, or is relative to a different directory than you think. Use an absolute path to be sure
A folder reports no data filesNothing under it matched .csv, .tsv, .txt, .parquet, .json, .ndjson, .jsonl, .xlsx, .xls, .xlsb or .ods
A folder produced fewer files than expectedHidden entries and symlinks are skipped, and one open request attaches at most 256 files. Open subfolders separately
A path opened as a database unexpectedlyAny existing file that is not a data file is treated as a DuckDB database. If it will not open, DuckLocal says why; at launch it falls back to memory. See Opening a database
Not attached …: the database already has a table or view named …The database already contains a table or view with the same name as the remembered file. DuckLocal never replaces it. Rename or drop one of the two, or remove the file from Local files and open it again to get a new name
Cannot restore relative path …A file was remembered by a relative path, which cannot be resolved in a new session. Remove it from Local files and open it again
A view shows sales_2 instead of salesAnother file or table already had that name, so the new one got a suffix
A file's view is staleViews read the file on every query. If a CSV's columns changed shape, use Refresh schema in the sidebar

Opening a database ​

SymptomCause and fix
The message says the database was created by a newer DuckDBThe file uses a storage format newer than DuckLocal's built-in DuckDB reads. Run the ATTACH … COPY FROM DATABASE lines from the message in the DuckDB that created the file, then open the copy. See When a database will not open
The message says the database comes from DuckDB v0.9 or earlierRun EXPORT DATABASE 'dir' with the DuckDB that wrote it, then IMPORT DATABASE 'dir' in DuckLocal
The message says it is a SQLite databaseAttach it with Open → Attach database… instead of opening it
The message says the file is not a DuckDB databaseIts extension is not one DuckLocal reads as data, so it was tried as a database. Give it a supported extension, or read it in SQL, for example SELECT * FROM read_csv('export.dat')
DuckDB says it could not set a lock on the fileAnother program — another DuckDB, a script, a second app — has the database open for writing, and DuckDB lets only one process write a file. Close it there, then open the file again
DuckDB says permission deniedYour account cannot read the file, or cannot write it: the main database is opened for writing. Fix the file's permissions, or attach it with Read-only checked
A database open failed and nothing changedExpected while DuckLocal is running: a failed open leaves the workspace you had. Read the notification for the reason
The status bar tooltip says readable by DuckDB v1.x+ and a colleague cannot open the fileTheir DuckDB is older than that version. They need to upgrade, or you copy the file with an older STORAGE_VERSION — see Which DuckDB can read a database

Attached databases ​

SymptomCause and fix
An attached database is missing after a relaunchIts file was not at the remembered path at launch, so it was skipped. The registration is kept; put the file back and it returns with the next connection
This database is already open, as …The file is already the main database, or attached under that name. Query it by that name
Could not attach …: the name … is taken in the open database.Something else in the connection already uses the remembered alias — for example a database you attached in SQL under the same name. DETACH that one, then reopen the database or relaunch
Writing to an attached database failsIt was attached read-only, the default. Detach database from the sidebar, then attach it again with Read-only unchecked
Attaching created an empty databaseWith Read-only unchecked, a DuckDB path that does not exist is created. Detach it, delete the empty file, and check the path
A table name without a database finds the wrong tableNames without a database resolve in the default database. Right-click a database and choose Use as default database, or write alias.table

Finder and Quick Look ​

These are macOS only.

SymptomCause and fix
Double-clicking a .parquet or .duckdb file opens another appThat app is already the default. In Finder, Get Info → Open with, choose DuckLocal, then Change All…
Double-clicking a CSV or Excel file does not open DuckLocalBy design: DuckLocal does not take these over. Use Open With → DuckLocal, or drop the file on the Dock icon
DuckLocal is not offered under Open With, or Space shows no DuckLocal previewmacOS has not registered the app yet. Move it to Applications and launch it once. For the preview, then run qlmanage -r in Terminal, and check that DuckLocal Preview is on under Quick Look in System Settings' extension settings
A plain .json or Excel file shows no DuckLocal previewBy design: those are left to macOS's own previews. .jsonl and .ndjson files are previewed
The preview shows only 50 rowsBy design: a preview never scans the whole file. Open the file in DuckLocal for the rest
The preview of a .duckdb file shows an errorThe preview reads the file with DuckLocal's own DuckDB, so a file from a newer DuckDB fails there too. See Opening a database

Running queries ​

SymptomCause and fix
Run does nothingA query is already running. Press Stop beside Run, or ⌘., to interrupt it
A query failed with InterruptedSomeone pressed Stop (or ⌘.) while it ran. Run it again
Part of my SQL has a red wavy underlineThe last run failed there. Read the Query failed message; the mark clears on the next run
⌘↵ shows the editor instead of runningOn the first-run screen, ⌘↵ means "give me an editor". Press it again to run
Results stop early with a truncation noticeThe 100,000-row or 2,000,000-cell cap was reached. Narrow the query; there is no pagination
Timestamps look shiftedThe grid renders timestamps in UTC, not local time
A TIMETZ value has lost its offset, or a BIT or BIGNUM value looks like bytesThose types can't be told apart from ordinary values on their way to DuckLocal. CAST(column AS VARCHAR) in SQL shows the real value
Sorting does not bring in rows beyond the previewHeader sorting only rearranges loaded rows. Use ORDER BY in SQL to order the full result before truncation
A query needs an extension that is not installedMissing extensions are no longer downloaded automatically. Install it explicitly in the Extensions tab, then load it or rerun the query
A query that worked before 0.3.0 says an extension is not installed, or a function does not existDuckLocal 0.3.0 runs DuckDB 2.0, which keeps installed extensions per release. Install them again from the Extensions tab — see Extensions
A bare column alias such as minutes causes a parser errorIt is a SQL keyword. Write AS minutes, or quote it: SELECT count(*) AS "minutes" FROM events
Clicking a table or history entry wiped my SQLThose clicks replace the whole editor buffer. Use a new query tab for scratch work
An export silently replaced a fileExport writes to the path you give without asking. Choose a new name

S3 ​

SymptomCause and fix
S3 credentials were forgottenThey are session-only by design, and opening or switching a database clears them. Configure S3 again
Configuring S3 fails offlineThe first use runs INSTALL httpfs, which downloads the extension. Connect once, then it is cached
Temporary (STS) credentials are rejectedNo session token is sent. Use long-lived keys — see S3 and httpfs
A bucket looks smaller than it isListing stops at 1,000 entries per level. Query with a glob such as 's3://bucket/prefix/*.parquet' instead

Dashboards ​

SymptomCause and fix
A dashboard plot says a query must be read-onlyA .dash query tried to write (DDL, DML, COPY, ATTACH, …). Dashboards only run read-only statements; move the setup into the SQL editor
An agent did not see my commentsComments are not sent anywhere: the agent has to read them. Ask it to run ducklocal comments FILE, or to "address the comments on FILE" if it has the official skill
An agent's reply or edit does not showThe window follows both the spec and FILE.comments.json within a second. A spec that no longer validates keeps the last working dashboard up, with the reason above it; open View spec to see the file
A PIVOT in a dashboard is rejectedA PIVOT nested inside a SELECT or WITH must name its values. List them: PIVOT t ON channel IN ('Web', 'Store') USING sum(revenue), or start the query with the PIVOT

Appearance ​

SymptomCause and fix
The theme resets to light on every launchThe theme is not saved between launches; the language is
Text or icons are too small or too largeUse the Aa button in the title bar, or ⌘+ / ⌘− / ⌘0. See Interface size
The interface is in the wrong languageUse the EN / 中 button in the title bar; the choice is remembered

Starting over ​

To clear history, remembered files, open tabs and settings, quit DuckLocal and remove its app-data directory:

bash
rm -rf ~/Library/Application\ Support/DuckLocal

Your data files are never touched — only DuckLocal's own records are removed. See Settings and app data for what is stored there.

Released under the Apache-2.0 License.