No row in dataset "users" where role = "admin" and the value is in the file
Example threads. These questions and answers were written by the SDODS team to document real problems and how to fix them. The people named are illustrative, not real users. Questions asked on this site are marked new.
gherkin
Given I load dataset "users" where "role" is "admin"
text
DATASET_ROW_NOT_FOUND: No row in dataset "users" where role = "admin".
grep -c admin on the CSV says 1. The column is spelled role. I have restarted, cleared .sdods, and read the line about forty times.
The comparison is exact. Both sides get stringified and compared with === — no case folding, no partial match. If the cell says Admin and the step says admin, that is a miss, and grep -c admin would still find it because grep matched the substring in Administrator or the case-insensitive habit in your head. Look at the actual cell.
The second thing is which file you grepped. data/<env>/users.csv replaces data/common/users.csv for that environment, so the admin can be in the file you searched and absent from the file that was loaded.
bash
sdods data preview projects/shop/data/staging/users.csv
If the row is there and spelled exactly right, come back with the preview output.
Worth knowing that CSV values are cast — 42 arrives as a number, true as a boolean — but the where comparison stringifies both sides, so casting almost never causes this. Case does, and trailing punctuation in a hand-edited file does.