Common Errors
This page collects the errors beginners hit most frequently, regardless of which module they are working through. Use this as a quick lookup when something goes wrong.
Search (Ctrl+F) for the error or symptom you see. Each entry has: what caused it, what it looks like, and the exact fix.
#ERR Appears in a Column
Symptom: A derived column (=) or a cast column shows #ERR for some rows.
Causes and fixes:
| Cause | Fix |
|---|---|
| Column typed as str, used in math | Cast to # or % first, then re-run expression |
| Division by zero in expression | Use = (a / b) if b != 0 else 0 |
| Column name has spaces | Use row['column name'] instead of column_name |
| Non-numeric value in numeric column | Cast to float → non-numeric rows show #ERR → use z| to filter and remove |
# Find all #ERR rows
z|
# Enter: column_name is None
# Delete them
gd
Empty Filtered Sheet After "
Symptom: You press " to open a filtered sheet but it opens empty.
Cause: No rows were selected before pressing ".
Fix:
# Check how many rows are selected — look at status bar
# "0 selected" means nothing was selected
# Re-select with |, z|, or s
|
# Enter: your_pattern
# Then open filtered sheet
"
q Exits Too Many Sheets
Symptom: Pressing q closes VisiData entirely instead of going back one level.
Cause: You were on the last remaining sheet (the source sheet). q on the last sheet exits VisiData.
Fix: Use Ctrl+^ to toggle between the current and previous sheet, or use Shift+S to see the full sheet list before pressing q.
Accidental gd Deleted Too Many Rows
Symptom: Pressed gd and removed rows you didn't intend to delete.
Fix:
U # undo (requires options.undo = True in ~/.visidatarc)
If undo is not enabled:
Ctrl+R # reload the sheet from the source file
# Warning: all unsaved changes (including intentional ones) are lost
Prevention: Add options.undo = True to ~/.visidatarc. See VisiData Configuration.
Numeric Sort Is Wrong (1, 10, 2, 20 Instead of 1, 2, 10, 20)
Symptom: Sorting a number column gives alphabetical order.
Cause: Column type is str (default). Strings sort lexicographically.
Fix:
# Move to the column
# # cast to int
# OR
% # cast to float
# Now sort
[ or ]
e Opens Edit Mode by Accident
Symptom: You accidentally pressed e and the cell entered edit mode.
Fix:
Ctrl+C # cancel edit — original value is restored
Can't Find a Command / Key
Symptom: You don't know the shortcut for something.
Fix:
Space
# Type any part of the command name
# Tab to cycle matches
# Enter to run
# Or:
Ctrl+H # open full man page
z Ctrl+H # commands for current sheet type only
Frequency Table Shows One Group Per Row
Symptom: Shift+F produces a table with every row as its own group.
Cause: The column has unique values (e.g., an ID or timestamp column).
Fix: Use Shift+F on a categorical column (role, status, region, department) — not a unique identifier.
Source File Was Accidentally Overwritten
Symptom: Pressed Ctrl+S and saved back to the original file.
Fix:
Ctrl+R # reload from disk — recovers the original file
# (Only works if you reload before closing VisiData)
Prevention: Always save to a new filename first:
Ctrl+S
# Enter: /tmp/clean_version.csv ← new name, not the original
Hands-On Practice
vd ~/github/practice-folder/visidata/01-loading/01-employees.csv
# 1. Press = → Enter: salary * 12 → see 'annual_salary' column
# (salary may show #ERR if not cast — fix by pressing % on salary first)
# 2. Create a bad expression: = → Enter: salary / 0
# → all rows show #ERR (division by zero)
# → press U to undo
# 3. Sort 'salary' while it's still a string → see wrong sort order
# → press # → re-sort → correct order
# 4. Practice cancel edit: press e → type something → press Ctrl+C