Skip to main content

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.

How to Use This Page

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:

CauseFix
Column typed as str, used in mathCast to # or % first, then re-run expression
Division by zero in expressionUse = (a / b) if b != 0 else 0
Column name has spacesUse row['column name'] instead of column_name
Non-numeric value in numeric columnCast 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

What's Next