Troubleshooting · core
Use when
A search returned no results, or fewer than you expect, for something that the project should hold.
Looking for something else?
A File that is still processing (problem A new File is not searchable yet). A warning that search by meaning is unavailable (card rule search.2).
Signs
penumbra files search "<query>"prints no passages and the lineNo passages match "<query>"., followed by a hint.- The first line reads like
mode: hybrid -> lexical; semantic coverage: none (0/4). penumbra search "<query>"printsfiles: 0 passagesandNothing matched.- MCP:
omnisearchprints a line that starts with Files: no relevant results when it left out weak matches. The line says how many. - You saw the File in
penumbra files list, and the search still skips it.
Why it happens
One empty result has several causes. Each cause is a different step in the chain from File to answer.- Your words. Search by exact words needs every plain word of the query in one passage. A word from another passage gives no match. The name, tags and description of the File count as part of each passage. Penumbra also reduces words to a base form and ignores very common words.
- The File. Search reads only the current version of a live File that is ready. A File in the trash, a File that is still processing, a File that failed, and a File with no readable text are all absent. The coverage count does not include them.
- The meaning data. Search by meaning reads only versions that have their data. With none ready, it returns nothing, and a hybrid search falls back to exact words.
- The filters. A tag, a File id, a collection id or a media type narrows the search. A narrow filter can leave nothing.
- Your access. A credential limited to a View searches only the Files in the View. The rest read as missing.
- The catalog. Passages and entities have separate searches. A passage search never returns an entity.
What Penumbra does
By itself:- Searches the current version of each live File that is ready. It skips Files in the trash, Files still processing, Files that failed and Files with no readable text.
- In exact-word mode, needs every plain word of the query to match. It accepts a phrase in double quotation marks, the word
or, and a minus sign before a word to exclude it. - Searches by meaning only the versions whose data is ready, and reports the coverage as
partialornonewith a warning. - Prints the mode you asked for, the mode it used and the coverage with every result of
penumbra files search. - Limits a credential that is bound to a View with Files or collections to the Files in the View.
- Searches passages by default in hybrid mode. Entity search through
penumbra graph searchuses exact words by default. - MCP:
omnisearchleaves out weak matches by meaning and says so.penumbra files searchapplies no such cut.
- Read the mode and the coverage before you decide that nothing matches.
- Try the query again as exact words, with fewer words, as a phrase or with
or. - Check the state of the File and your own access.
- Tell the person which cause applied, or which causes you could not exclude.
- The coverage count ignores versions that are still processing, so a full count does not prove that the search covered every File.
Do
- Run the search and read its first line:
penumbra files search "<query>". Note the mode and the coverage. If the hint says that no File has searchable text yet, runpenumbra files listand read the status of each File (problem new-file-not-searchable-yet). - Remove the filters that you passed:
--tag,--file-id,--collection-id,--filter-media-typeand--source. The hint names the filters you used. - Search by exact words with fewer words:
penumbra files search "renewal" --mode lexical. For a phrase, put it in double quotation marks inside the query. For alternatives, useor. - Search by meaning and words together:
penumbra files search "<query>" --mode hybrid. If the coverage ispartialornone, only some versions are searchable by meaning. Exact words cover the rest. MCP: callomnisearchagain in lexical mode, with fewer words. - Check the File:
penumbra files find "<name>", thenpenumbra files inspect <file>. Theprocessing:line shows the lexical state and the semantic state. Runpenumbra files list --trashedto see whether someone trashed the File. If the text is empty or garbled, runpenumbra files text <file>(recipe check-file-text). - Check what you can see:
penumbra access me. If a View limits you, items outside the View look absent, and counts cover the View only (problem hidden-reads-as-missing). - Search the entities too:
penumbra graph search "<query>" --mode hybrid.penumbra search "<query>"searches passages and entities in one call. - Report the result with its limits. Say what you searched, the mode, the coverage, and what you could not see.
Don’t
- Don’t tell the person that a fact is not in the project after one empty search. The File may be processing, outside your View, or not matched by your words.
- Don’t read a full coverage count as proof that the search covered every File. The count leaves out a File that is still processing.
- Don’t search by meaning only (
--mode semantic) while the coverage ispartialornone. That mode skips the versions without data and can return nothing. - Don’t upload the File again. The same bytes give the same File and change nothing (problem same-bytes-no-new-version).
Check
- The query returns a passage with its File id, version id and passage id:
penumbra search "<query>"prints them on acite:line. - Or you can name the cause: the words, the File state, the data for meaning, a filter, or your View. The person has heard it.