~/.var/app/app.tablepro.TablePro/, mapped in Where the files are.
Passwords
Native packages keep saved passwords, the MCP server access token and cloud AI API keys in the Secret Service. GNOME Keyring, KWallet and KeePassXC provide this desktop service. For the bundle, see Flatpak secret storage. It needs a working desktop portal and keyring. There is no plain-text fallback when secret storage fails.Every connect asks for the password
When the Secret Service or Flatpak’s Secret portal is unavailable, the password prompt has no Remember Password switch. Check for a desktop keyring:- GNOME and most other desktops:
gnome-keyring(sudo apt install gnome-keyring,sudo dnf install gnome-keyring). - KDE Plasma: KWallet (
kwallet6on Ubuntu,kf6-kwalleton Fedora), which Plasma installs by default. - KeePassXC: turn on Secret Service Integration in its settings, and leave it running.
A saved password is asked for again
The keyring is locked. The desktop asks to unlock it when a saved password is read; dismiss that prompt and the app asks for the password instead. A keyring that never unlocks at login usually has a different password from the account, after a password change or with automatic login. Passwords and Keys (Seahorse) or KWallet Manager changes the keyring password to the login password. After unlocking the keyring, retry the connection and accept the unlock prompt. If saving a newly entered password failed, enter it again with Remember Password on.MCP and cloud AI cannot read or save a secret
Preferences > MCP reports that the access token cannot be read or kept. Preferences > AI or the assistant reports the same problem for an API key. Entering a database password at each connect does not restore these features.1
Restore secret storage
If no keyring is running, install or start one as described in Every connect asks for the password. For Flatpak, also check that
xdg-desktop-portal and your desktop’s portal backend are installed and running, then log in again.2
Unlock the keyring
Unlock it in Passwords and Keys or KWallet Manager. If you dismissed an unlock prompt, retry the operation and accept the prompt.
3
Retry the affected feature
In Preferences > MCP, click Try Again. In Preferences > AI, re-enter and apply an API key whose save failed, then retry the request. A key or token already stored does not need replacing after an unlock.
Saved secret entries
Native-installation entries have these labels in the desktop keyring:TablePro database password for …TablePro SSH password for …TablePro SSH key passphrase for …TablePro MCP access tokenTablePro API key for …
SSH tunnels
Native packages run the systemssh and read ~/.ssh/config, ~/.ssh/known_hosts and the SSH agent as a terminal does. For the bundle, check the Flatpak connection limits. When a tunnel fails, try the same hop in a terminal first:
Agent sign-in fails
The app uses the agent thatSSH_AUTH_SOCK names in the desktop session, and ssh-add -l lists the keys it holds. When the key works in a terminal and not in the app, the desktop session has a different agent or none: systemctl --user show-environment | grep SSH_AUTH_SOCK shows what apps started from the desktop get.
Unknown host key
The server’s SHA256 fingerprint shows before anything connects, even wheressh_config says StrictHostKeyChecking accept-new or no. Compare it with ssh-keygen -lf on the server’s key, or with what the server’s administrator gives you.
Changed host key
Review Key in the connection’s banner replaces the entry inknown_hosts. Under StrictHostKeyChecking yes it cannot: run ssh-keygen -R host, then click Retry. A revoked key is refused, with no way past it in the app.
SQL Server with Kerberos
Windows (Kerberos) uses an existing ticket.kinit and klist come in krb5-user on Ubuntu and krb5-workstation on Fedora. For Flatpak, check the KCM cache and sandbox configuration too.
KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN
The server’s service principal,MSSQLSvc/<host>:<port>, is not in the realm the lookup used. It is built from the host and port you typed and looked up in the default realm only. For native packages, check default_realm in /etc/krb5.conf; Flatpak uses its sandbox configuration. Type the host name the SPN is registered for, not an IP address or a CNAME. A server in another realm works only when your KDC answers with a referral, as Active Directory does inside a forest.
A missing or expired ticket fails the same login: run kinit again, then retry.
Logs and crash reports
Started from the desktop, the app writes its log to the journal:Native crashes
1
Collect the journal from the crash time
Start with the user journal command in Logs and crash reports. For a native crash or an out-of-memory kill, also inspect system messages:Adjust the time to include the crash. If system journal access is denied, ask the system administrator for those messages.
2
Find crash metadata
On distributions running Replace
systemd-coredump, use coredumpctl:PID with the process ID from the row at the crash time. Read and redact the output before sharing it. If no entry exists or coredumpctl is unavailable, use your distribution’s crash reporter and send the journal, app version and reproduction steps.Reporting a bug
Open an issue at github.com/TableProApp/TablePro/issues with:- The text from About TablePro > Troubleshooting > Debugging Information. Copy Text puts it on the clipboard. It holds versions and no connection details.
- Where the app came from (the PPA, COPR, a .deb, .rpm or Flatpak bundle from GitHub Releases, or a source build), the distribution and its version, and the desktop and session:
echo $XDG_CURRENT_DESKTOP $XDG_SESSION_TYPE. - The log and newest crash report from the same time, or native crash metadata, after the privacy review.
After a downgrade
An app refuses a saved file or history database whose storage format is newer than it understands. This checks the storage format, not the app’s version number. An older app may read and change files from a newer app when both use the same format. Back up saved work before changing versions. When a storage format is too new:- The connection list shows “Saved connections were created by a newer version of TablePro”. Reset… moves the file aside, under a name the toast shows, and starts an empty list.
- A connection’s saved tabs do not reopen, and a toast says “Saved tabs could not be read”, with Reset.
- The query history says it could not be read.
Back up saved work
1
Quit before copying
Close every app window and wait for the process to exit. This stops history and draft writes during the copy.
2
Copy the app folders
Copy the config, state and data folders in Where the files are to a private backup location. Keep the entire state folder, including
history.db and any history.db-wal or history.db-shm files beside it. For Flatpak, copy the entire app folder.3
Keep preferences separately
Save the output of the GSettings command in Where the files are with the backup as a reference for your settings. Native keyring items are separate; an export of connections does not include their secrets.
Where the files are
These are the default paths. If you set
XDG_CONFIG_HOME, XDG_STATE_HOME or XDG_DATA_HOME, use the tablepro folder under that location instead.
Preferences are in GSettings: gsettings list-recursively app.tablepro.TablePro lists them, and man tablepro has the same list.
The Flatpak bundle uses ~/.var/app/app.tablepro.TablePro/config/tablepro/, .local/state/tablepro/ and data/tablepro/ in place of ~/.config/tablepro/, ~/.local/state/tablepro/ and ~/.local/share/tablepro/. There, the preferences and a detailed log come from:

