passagedata
What we mean when we refuse a column
We never guess: a wrong interpretation is impossible to tell from a right one once
it is published. A refusal is not a rejection of your data — it is the part of the report
that says what still needs a human.
Expect a handful, not hundreds. Each is a decision about a whole column,
never about a row.
263 codes in 44 groups, generated from the registry the checker emits from — so it
cannot drift from what you were told.
Opening the file
file.bad_container- the .gz/.zip wrapper itself would not open
file.empty- readable, and there is nothing in it
file.format_unread- a recognised format we do not read yet (GML), named instead of misread
file.headers_without_rows- column headers were read and NO data rows, which cannot be told apart from a mis-parse — so we refuse rather than call it empty
file.legacy_binary_excel- a pre-2007 binary .xls (OLE2 compound document), which we do not parse — re-saving as .xlsx is the whole fix
file.ole2_not_a_table- an OLE2 compound document that is not a workbook — a Word .doc, a PowerPoint .ppt or an Outlook .msg; save it as .docx/.pdf and drop that
file.unreadable- no table could be produced from these bytes at all
file.web_page_not_data- the upload is an HTML web page (sign-in / error / cookie wall), not a data file — an ACQUISITION failure, not a reader gap
Character encoding
encoding.choice_unknown- the alphabet the depositor chose is not one these bytes decode to — a BUILD may not proceed on an answer we could not spend
encoding.not_utf8- the bytes are not UTF-8 and the fallback is a guess
encoding.undecodable- no encoding in the declared ladder could decode the bytes at all — distinct from `encoding.not_utf8`, which DID decode on a fallback
Zip archives
zip.ambiguous_layers- several SHAPEFILE LAYERS, each readable, and no declaration of which is meant — a chooser, not a reader
zip.ambiguous_members- several tables and no declaration of which is meant
zip.lab_package- a laboratory package (one work-order stem: certificate PDF + criteria workbook + LIMS export) read as ONE table — the EDD
zip.lab_package_member_disagrees- inside a laboratory package, one member names a bottle another member does not
zip.layer_choice_unknown- a shapefile layer was CHOSEN by id and no layer in the zip has that id — the answer channel is stale, not the reader
zip.member_choice_unknown- a zip member was CHOSEN by id and no readable member of the zip has that id — the answer channel is stale, not the reader
zip.member_format_unread- a zip holding only formats we do not read yet, each named
zip.no_tabular_member- a zip with nothing we read inside it
zip.too_large_uncompressed- the archive expands past the parser's bound — a COMPRESSED byte cap does not bound this
Excel workbooks
xlsx.coordinate_lookup_joined- a sibling sheet is a place table keyed to this one and carried the coordinates this sheet lacks — joined, and nothing of the depositor's was overwritten
xlsx.multi_sheet_first_taken- several sheets with DIFFERENT headers; counts describe the first only
xlsx.no_worksheet- an .xlsx with no worksheet (probably .xlsb or a macro workbook)
xlsx.our_own_deliverable- a workbook WE built, dropped back in — a deliverable, not a source; the original filing is what re-extracts
xlsx.parallel_sheets- one table split across tabs — the subject is the SHEET NAME
xlsx.parallel_sheets_are_forms- same-header tabs, every one a recognised field form — one record each, read by the form workbook; the column view shows the first
xlsx.parallel_sheets_one_chosen- same-header tabs, and the depositor NAMED one — that tab alone was read and the others were not examined
xlsx.shared_strings_unreadable- text cells will be empty
xlsx.sheet_choice_unknown- the sheet the depositor chose is not in this workbook — a BUILD may not proceed on an answer we could not spend
xlsx.sheet_family_choice_unknown- the tab family the depositor chose is not one this workbook offers — an answer we cannot spend is refused, never resolved to a different family
xlsx.sheet_family_header_mismatch- a tab in the chosen family does not carry the family's header row where the others do — merging would misalign columns silently, so NOTHING was merged
xlsx.sheet_family_name_collision- the tabs already carry a column named 'sheet_name', so the synthesized tab-name column would be indistinguishable from the depositor's own data
xlsx.styles_unreadable- dates cannot be told from numbers
JSON structure
json.nested_not_flattened- arrays/objects below the flatten depth were not exposed
PDFs
pdf.ambiguous_tables- several DIFFERENT tables in one PDF — which one is the data is the depositor's to say, not ours to guess
pdf.encrypted- encrypted — we hold no key and will not attempt one
pdf.invisible_text- render-mode-3 text (the OCR-layer tell)
pdf.not_a_pdf- the signature is not a PDF
pdf.partial_page_coverage- the table was read from some of the PDF's pages, not all of them — a short read that must never look like a whole one
pdf.prose_not_table- running prose, not a table
pdf.rotated_text- rotated/sheared text, not projected flat
pdf.scanned- a page image, not text — OCR is a DECLARED rung we have not built
pdf.signals_contradict- ruled lines and whitespace disagree about the columns
pdf.single_column- fewer than two columns could be reconciled on this page
pdf.table_choice_unknown- a table was CHOSEN by id and no table in the document has that id — the answer channel is stale, not the reader
pdf.too_few_lines- fewer lines than a header plus a record
pdf.unmappable_glyphs- runs whose font encoding we could not map, dropped rather than emitted
pdf.unmappable_glyphs_outside_tables- runs whose font encoding we could not map, dropped rather than emitted — and NONE of them fell on a page any table we cut came from, so the gap is itemised per page and the tables stand
pdf.unmappable_glyphs_some_tables- some of the tables listed come off pages where runs were dropped — those carry `headers_confirmed: false` and are not named, and every other table is unaffected
pdf.unmappable_glyphs_whole_pages- whole pages lost EVERY text run to a font encoding we could not map — the tables we cut are unaffected and are listed, and the unreadable pages are named rather than left as a silent absence
Darwin Core Archives you upload
dwca.core_is_not_occurrence- the declared core is an EVENT (or other) table — the species are in an extension
dwca.core_read_extensions_dropped- a Darwin Core Archive: we read its declared core and set the extensions aside
dwca.event_core_joined- a SAMPLING EVENT archive whose organisms were read from its Occurrence extension and joined to their events
dwca.event_id_absent- an Event core was asked for and the file never says which records were collected TOGETHER — we will not infer sampling events
dwca.event_id_collides- two event identifiers become the same value once written into the tab-delimited archive — refused rather than merged
dwca.event_join_declined- a SAMPLING EVENT archive we could not join — the extension is absent or empty, or its event table is over the member size bound
dwca.event_join_failed- a SAMPLING EVENT archive whose Occurrence extension we could not read — OUR defect, named rather than left as a shorter table
dwca.event_join_unwritten- occurrence records of a SAMPLING EVENT archive past the bound on the joined table — read and counted, and in NO archive we build
dwca.event_term_varies- records inside one event disagree on a term, so it is not a property of the event — it travels on the occurrence rows
dwca.event_without_occurrence- sampling events that no occurrence row points at — a table of one row per occurrence cannot hold them, so they are counted and one is named
dwca.extension_unkeyed- a declared extension with no `<coreid>` — nothing states which column joins it to the core, and we will not guess one
dwca.measurement_unit_absent- a measurement VALUE with no UNIT — refused rather than shipped blank, because the reader would guess the dimension
dwca.occurrence_in_a_table_we_set_aside- the archive declares its own occurrence table and we read only the core it names — not an absence
dwca.occurrence_not_stated- records carrying no occurrence fact the FILE stated — writing them would assert observations nobody recorded
dwca.records_as_subevents- records with no occurrence fact ship as their own sampling events under parentEventID — their leaf id is ours, derived from the depositor's own event identifier
Finding the header row
header.caption_not_names- rows span the columns, but every one reads as sliced running text rather than a set of column names
header.comment_preamble- a /* ... */ metadata block above the table — set aside and parsed
header.duplicate- the same header appears more than once
header.name_from_row_above- a blank header cell took the label standing above it in the same column — a name the file wrote, but not on the header row
header.not_full_width- no row is wide enough to be the header
header.preamble_rows- title/blank rows above the real header
Individual rows
row.field_unparsed- a single row's value did not parse for its term — a ROW event, not a column one
row.not_landable- the row lacks the minimum (coordinate + date) to be placeable
row.ragged- rows disagree with the header on column count
Matching your columns to Darwin Core
term.ambiguous_header- several columns token-match and none matches exactly
term.not_carried- a column of yours holds values and no term carried it, so it is NOT in the archive — this line is the record that it existed
Values that contradict their header
value.atomised_date_conflict- year/month/day contradicts eventDate — GBIF flags the record twice and trusts neither
value.column_empty- the column exists but holds no values at all — ABSENT, which is not the same as invalid and must never be reported as one
value.date_is_file_stamp- a date column carrying ONE distinct value across every sampled row — an export stamp, not a per-observation date
value.fused_terms- one cell holding several Darwin Core terms at once — REFUSED, never parsed, because separating them means inventing which number belongs to which description
value.insufficient- too few values to decide — NOT evidence of absence
value.no_admissible_candidate- several columns token-match a term and NOT ONE of their value sets is admissible for it — there is nothing to choose between, so no question is worth asking
value.not_count- a count column that is not non-negative numeric
value.not_date- a date column nothing in which parsed
value.not_date_like- a nominated date column whose values carry no digits and no declared missing-value marker — the nomination was a false friend; the column was refused outright instead of carried as verbatimEventDate
value.not_in_vocabulary- values outside the term's controlled vocabulary
value.not_integer- an integer-typed DwC term carrying a non-integer — GBIF drops the field rather than rounding it
value.numeric_not_prose- a prose term whose values are entirely numeric
value.out_of_range- the column's values contradict the term its header names
value.personal_data- a column whose VALUES prove a personal identifier (an address, a Luhn-valid card, a mod-97 IBAN) — REFUSED and never ingested
value.refused_other- a value check refused it and the reason is in the message
value.self_referencing_synonym- acceptedNameUsage naming the row's OWN taxon — a synonym of itself asserts nothing, and GBIF mints the repeat as a separate taxon
value.transposed_pair- a latitude/longitude column pair the values prove is exchanged
value.transposed_pair_by_land- read as written the coordinate pairs fall in open water and read the other way round they fall on land — proposed, never swapped
value.uncorroborated_count- a token-only `count` match whose header carries an unexplained modifier; the values cannot corroborate either reading
value.wrong_cardinality- an identifier whose repetition contradicts the term
value.zero_coordinate- a 0,0 coordinate pair — a missing-value sentinel emitted as a position
Species names
taxon.authority_unreachable- the naming authority could not be asked about this file's species column — we did not look, so nothing here is a verdict on your names
taxon.authorship_veto- a taxon column carrying nomenclatural authorship lost to a cleaner one
taxon.carried_verbatim- a species column the DEPOSITOR named, carried as `verbatimIdentification` because we could not corroborate its values — no scientific name is asserted
taxon.no_species_field_landed- no column's VALUES were recognised as taxon names, so no species column landed for the screen to run on — this is what we could read, not a verdict on what your file holds
taxon.rank_refinement_applied- two taxon columns; the finer one was chosen
taxon.vernacular_not_scientific- the species column in this file holds COMMON names, and the registers are indexed on scientific ones — we read the column, we did not guess at what it means
Grid references
gridref.malformed- not a British National Grid reference at all — 100 km letters outside the grid, the letter I (which the grid does not use), or an odd number of digits (a ref splits evenly into easting and northing)
gridref.no_cell_extent- coordinates were derived, but the reference names a POINT rather than a square, so its digit count states no extent and we decline to derive coordinateUncertaintyInMeters from it — supply your own
gridref.recognised_not_decoded- a coordinate system we DO decode whose values did not decode — almost always a projected CRS in metres, not degrees
gridref.shape_only- a column shaped like a grid reference whose values cannot be one — a classification code, sample id or plot label matching by accident
gridref.unsupported_form- a well-formed reference in one of the 8 systems we RECOGNISE but do not decode — tetrad/quadrant (GB/IE), MGRS polar UPS, MTB (DE), IFBL (BE), WKT footprint, Plus Code, what3words; the message names which. REFUSED rather than widened, which would discard precision
Packed coordinates
packed.axis_by_convention- a packed pair whose members are both within ±90, so the values cannot say which is latitude — read latitude-first BY CONVENTION, tiered down, and ASKED about
packed.unparseable- a packed coordinate column nothing in which parsed as a pair
Controlled vocabularies
vocabulary.source_unavailable- a SOURCED vocabulary artifact we depend on was not available, so the mouth ran without it — this is OUR degradation, not a defect in your file, and nothing you can fix
Answers you gave us
choice.unknown_header- the depositor answered a disambiguation with a column the file lacks
Publication metadata
eml.archive_unreadable- a .zip posted to the EML door whose container would not open — the `file.bad_container` class, one door over
eml.metadata_incomplete- the archive cannot be PUBLISHED until facts only the depositor has (creator, description, licence) are supplied
eml.no_metadata_member- an archive that opened and carries no eml.xml/metadata.xml. NOT a gap in us: it is the exact case the GENERATE half answers
eml.not_generated- the five answers were complete and the document still would not write. ⛔ THE ONLY ONE OF THE FIVE THAT IS OURS — a rising count here is a defect in `eml_xml`, not in anybody's request
eml.not_xml- bytes posted to the EML door that are not a document at all — nothing to check and nothing to build
eml.nothing_to_do- neither a document nor answers arrived — a malformed request
Building the archive
archive.answer_entangled- a proposition was declined while another produced by the SAME step of ours was accepted. The two cannot both hold, and choosing one would be us keeping half their answer
archive.answer_not_built- a YES on a change we PROPOSE and do not make — the site is not wired into the corridor, so yes is not an answer we can honour
archive.answer_not_gated- a DECLINE of a site the emitter does not yet consult. We will not pretend to honour it; the archive is unchanged
archive.answer_unknown_proposal- an answer named a proposition id our own transform census does not hold; an id comes back exactly as we sent it
archive.answer_unnameable- a DECLINE of a change no site in our census declares — the residue names nothing, so there is nothing to switch off. The gap is OURS and the refusal is what puts it on the build queue
archive.answer_unreadable- an answer to a proposition was neither yes nor no — a proposition is a question with two answers
archive.awaiting_your_answer- columns were recognised but some are AMBIGUOUS and we are asking — nothing is missing, an answer is. ⛔ NOT A BUILD: ranking this as a gap counts our own open question as a shortfall in our reach
archive.core_discards_data- this file carries dates or coordinates, which a checklist archive has nowhere to put — converting it would silently drop them
archive.core_is_not_occurrence- the archive's own meta.xml declares a non-occurrence core, so an occurrence archive would mint an observation per row
archive.duplicate_rows- rows that are exact repeats of an earlier row — each still ships with its own id, so the published count is a multiple of the distinct one
archive.identified_above_species- some rows name an organism above species; they are emitted at the rank the file confirms, and the count per rank is stated — never composed into a binomial
archive.list_name_unmatched- an observed row of a species list prints a name GBIF's backbone does not match as printed — it is withheld, never published; the count and the pages are stated
archive.list_row_not_observed- a species list names these rows as potential or known from elsewhere, not as observed — no occurrence is minted from them; the count and the pages are stated
archive.list_row_repeated- an observed row of a species list repeats one already kept — the same name and common name, no date or place — so it is one assertion printed twice and is emitted once; the count and the pages are stated
archive.metadata_not_an_object- depositor metadata arrived as something other than a JSON object
archive.metadata_unparseable- the depositor metadata was not valid JSON — REFUSED rather than ignored, so our parse failure cannot read as their gap
archive.no_column_recognised- NONE of the file's headers matched a term we know — a statement about OUR vocabulary, not their data. ⇒ the build is a term, an alias or a translation
archive.no_data_from_file- columns WERE recognised and no usable value came out of any of them — every emitted value would be one we minted or defaulted ourselves. ⇒ the build is a VALUE CHECK, never a wider canon
archive.no_organism_in_occurrence- an occurrence archive would be built with no species column and no genus + specificEpithet — every row an observation of nothing named
archive.only_dataset_metadata- every value we could carry describes the DATASET (its name, holder or licence) and none describes a record
archive.rows_without_organism- some rows carry no species name and no genus + specificEpithet — they are not occurrences and are not emitted; the count and the reason are stated
archive.too_many_rows- above §B.3's automated ceiling — this size is QUOTED, and slicing it silently would hand back a partial archive that looks complete
Payment
payment.required- the archive for this submission has not been paid for (§B.3)
Upload limits
upload.refused- refused before parsing, by the abuse budget
Uncoded — a defect on our side
UNCODED- ⚠ emitted without a code — a site that has not been migrated; this is a DEFECT
Other
camtrap.camera_unmatched- detection rows name a camera that is not in the deployment sheet — they would join to nothing, so they are withheld and listed rather than shipped as orphans
camtrap.deployments_absent- a camera-trap package needs the deployment sheet (camera id, coordinates, start, end) and this drop carries detections alone — the required fields live in the missing file
camtrap.package_invalid- the assembled package fails Camtrap DP's own schema — not written
census.timed_out- the count of this file's results did not finish within the door's time budget; it keeps running in the background, and the same file sent again in a minute is counted from the finished result
chunk.bad_declaration- a chunk's framing (id/index/count/size) is malformed or inconsistent — fix the uploader's call, nothing was staged
chunk.declaration_changed- the same upload id arrived re-framed (different total/chunk size/name) — restart that upload from scratch
chunk.incomplete- assembly was asked for before every declared chunk arrived — send the missing chunks and ask again (resume, not restart)
chunk.no_input- neither a file part nor an upload_id arrived — send one of them
chunk.sha_mismatch- the assembled bytes do not hash to the declared upload id — the staging was discarded; re-upload the file
chunk.unknown_upload- the cited upload id has no staged chunks here (never sent, or aged out) — upload the chunks first
corpus.not_recorded- we did not keep our own SHAPE note from this upload — the mapping learner declined it. Your file, your report and your archive are unaffected; nothing of yours was retained either way (invariant #61)
crs.absent- no coordinate system declared at all
crs.authority_absent- the file names no authority code for its own CRS
crs.axis_order_declared- the CRS declares an axis order — a consumer-facing hazard
crs.datum_absent- a CRS naming no datum — the fact a coordinate is meaningless without
crs.ellipsoid_absent- no ellipsoid parameters, so the shape cannot be checked
crs.ellipsoid_unknown- ellipsoid parameters matching none we hold
crs.inverse_not_built- the file's projection is named, and the inverse that would place it is not built yet — a named gap in our reader, not a defect in the file
crs.kind_unsupported- a CRS kind this reader does not classify
crs.projected- coordinates in linear units, NOT degrees
crs.unit_absent- no unit, so a coordinate's magnitude is undefined
crs.unit_unrecognised- a unit whose conversion factor we do not hold
crs.unparseable- a declaration present that is not WKT we can read
delimiter.ambiguous- several delimiters fit equally; refused rather than picking one
delimiter.none- no delimiter split the sample into a consistent >1 column count — this is not a delimited table at all
designation.coordinates_withheld- a listed record another record in the file places exactly: the treated copy withholds its coordinates instead of rounding them, and informationWithheld says why
designation.generalisation_not_run- you asked for the coordinates of listed species to be generalised and the screen could not run — nothing was rounded or withheld, and the archive says so
designation.mof_not_run- you asked for each record's designations to travel in the archive's MeasurementOrFact table, and the screen could not run — so the archive carries none, and says so
designation.not_asked- our own lookup budget ran out before this name reached the taxonomic backbone, so no register was consulted about it — this is our limit, never a statement that the name was rejected
designation.not_assessed- this register holds assessments rather than a jurisdiction's list, and it has not assessed this taxon — that is its own coverage, never a statement that the taxon is secure
designation.not_reconciled- a name the taxonomic backbone did not match — no register was asked about it, and no designation was attached
designation.qualifier_unstated- the register lists this taxon only under a population or subspecies your file does not state — which one did this record concern?
designation.rank_above_registers- the file's taxon values are names, at a rank above the species/subspecies the registers name — so none of them could be asked; nothing here clears this file
designation.register_absent- a designation register was asked for and is not vendored in this build — nothing was screened against it
designation.register_scope- the register does not assess this kind of organism, or has no jurisdiction where these records are — its silence is NOT evidence that the taxon is unprotected
designation.scope_undetermined- the taxon could not be placed in the register's own taxon groups, so whether it covers them is unknown — never reported as 'not listed'
designation.status_undetermined- the register names this taxon and its own entry states no verdict (IUCN `Data Deficient`) — the assessment exists and supports no answer either way
detection.person_withheld- rows whose detection class says a person was recorded — withheld from every output (invariant #2), counted in the manifest, never carried as records
docx.ambiguous_tables- several DIFFERENT tables in one Word document — which one is the data is the depositor's to say, not ours to guess
docx.no_data_table- every table in a Word document reads as the document's own furniture (sign-off sheet, revision register, blank form) rather than data
docx.no_table- a Word document with no table anywhere — prose, and no grid to read records out of
docx.table_choice_unknown- a table was CHOSEN by id and no table in the Word document has that id — the answer channel is stale, not the reader
dxf.binary_dxf- binary DXF, refused by its sentinel rather than mis-parsed
dxf.block_geometry_unexpanded- INSERT placements ARE read at their insertion point with any ATTRIB attributes; the block’s own drawing is not expanded, counted — block geometry is placed by reference
dxf.block_placements_coincident- every INSERT placement sits at the same point — the placements do not locate the features; real coordinates stay inside the unexpanded blocks
dxf.entity_in_object_coordinate_system- an entity in Object coordinates, skipped rather than plausibly mis-placed
dxf.entity_kind_unread- CAD entity kinds we do not read, counted by kind
dxf.geodata_contradicts_coordinates- the embedded georeference points somewhere the drawing's own coordinates are not
dxf.no_entities- an ENTITIES section holding nothing we can draw
dxf.truncated- the pairwise code/value stream broke mid-file
geo.bundle_incomplete- a shapefile bundle missing a sidecar we need
geo.cpg_absent- no .cpg — the attribute character set is a guess
geo.datum_is_not_wgs84- degrees on a datum that is NOT WGS 84 — the quiet failure
geo.datum_unrecognised- a declared datum whose spelling we do not hold
geo.dbf_absent- geometry with no attribute table at all
geo.dbf_row_count_disagrees- the .dbf and .shp hold different record counts
geo.dbf_unsupported_version- a dBASE layout we refuse rather than mis-parse
geo.encoding_guessed- attribute text decoded with a guessed character set
geo.encoding_undecodable- attribute bytes that will not decode under the chosen set
geo.field_name_collision- field names a 10-character cap would have made identical
geo.field_name_truncation_suspected- a field name at the 10-character cap — the original spelling is unrecoverable, which is the strongest case for confirming a column from its VALUES
geo.hole_larger_than_shell- a hole ring larger than every shell — geometrically impossible
geo.no_data_coordinate- a coordinate at the specification's 'no data' sentinel
geo.prj_absent- no .prj — the file never says what its coordinates MEAN
geo.ring_not_closed- a ring whose last vertex is not its first — the spec requires closure
geo.ring_too_few_vertices- a ring with fewer than the four vertices a ring requires
geo.ring_winding_dirty- a polygon with no clockwise ring, so it declares no exterior
geo.ring_zero_area- a ring enclosing nothing
geo.shape_type_mixed- records carry a type the header did not declare
geo.shape_type_unknown- a shape type outside the specification's enumeration
geo.shp_bad_magic- the .shp does not open with file code 9994
geo.shp_length_disagrees- the header's declared length is not the bytes on disk
geo.shp_truncated- the .shp ends mid-record
geo.shx_absent- no .shx index; offsets were derived by walking the .shp
geo.shx_disagrees- index and main file disagree on the record count
gpkg.ambiguous_layers- several readable layers; naming them beats picking one
gpkg.blob_column_opaque- a binary attribute column carried as empty cells, and said so
gpkg.contents_missing- no gpkg_contents table, which the standard requires
gpkg.contents_orphan- a declared layer whose table does not exist in the file
gpkg.geometry_blob_malformed- a geometry BLOB outside the GeoPackage binary layout
gpkg.geometry_column_undeclared- a features layer with no gpkg_geometry_columns row
gpkg.geometry_kind_unsupported- a geometry kind we do not read (collections, curves, extended encodings)
gpkg.layer_choice_unknown- the layer answer names nothing in this file
gpkg.no_layers- gpkg_contents declares no feature or attribute layer
gpkg.not_geopackage- a SQLite database without the GeoPackage stamp — no layer contract
gpkg.srs_missing- a layer srs_id with no gpkg_spatial_ref_sys row behind it
gpkg.unreadable- SQLite could not open or walk the file (corrupt, or encrypted)
gpx.coordinate_out_of_range- degrees outside ±180/±90 in a format that fixes WGS 84 by schema
gpx.no_features- a GPX with no <wpt>, <rte> or <trk> carries no features
gpx.point_detail_not_rows- elevation/time recorded on EVERY point of a route or track, counted — one line is one row, so they have no column
gpx.point_missing_position- a point element with no readable lat/lon pair, counted and left out of the line
gpx.unparseable- XML that does not parse — no waypoint or track can be read
image.scan_class- a photograph or scanned page whose values are PIXELS — the SCAN class, whose home is the confirmation-gated OCR ladder and never a silent read
kml.coordinate_out_of_range- degrees outside ±180/±90 in a format that fixes WGS 84 by specification
kml.geometry_kind_unread- a KML geometry kind we do not read (Model, gx:Track, mixed MultiGeometry), counted
kml.network_link_not_followed- a NetworkLink we deliberately never fetch, reported
kml.no_placemarks- a KML with no Placemark carries no features
kml.unparseable- XML that does not parse — no Placemark can be read
matrix.taxa_unanswerable- a wide species matrix was detected and the legend we were given could not be used, so the file was read exactly as it arrived
media.not_data- an audio or video recording, named — the DATA is the detection sheet the survey software exports beside it
names.from_text- the species of a document the names door could not table are read from its text layer: only Latin names a register we hold (IUCN, CITES, CMS) recognizes exactly, with their pages — the names it mentions, not its species list, and never its own statuses
outbox.custody_not_recorded- we hold no record of the terms these bytes travel under, so they may not be transmitted to a third party. Downloading a file from an open-data portal is not a licence, and an absence the corpus WROTE DOWN (a fetcher's `UNSTATED`) is a recorded absence, never a recorded licence
outbox.no_manifest_entry- these bytes carry no outbox row at all, so nothing here can say whose data they are — unknown custody fails closed exactly as an absent one does
outbox.retired- these bytes were retired from the outbox by a recorded decision, with its reason and its date — an absence STATED, never a row deleted
ps6.ecosystems_not_screened- IFC PS6 criterion 4(a): ecosystems are not species, and this screen reads names
ps6.evolutionary_processes_not_screened- IFC PS6 criterion 5: key evolutionary processes are a landscape judgement a names screen cannot make
ps6.no_congregation_data- IFC PS6 criterion 3(b): congregatory status and use during environmental stress are held by no register here
ps6.no_country_named- IFC PS6 criterion 1(c): the file names no country, so no national list could be chosen
ps6.no_extent_of_occurrence- IFC PS6 criterion 2(a): restricted range turns on a species' extent of occurrence, and no register held here carries one
ps6.no_national_list- IFC PS6 criterion 1(c): no national or regional list is held for the country the file names, so nationally listed species were not screened for it
ps6.no_planning_priorities- IFC PS6 criterion 4(b): national conservation-planning priorities are not held here
ps6.not_a_determination- the PS6 screen does not determine whether any area is critical habitat, natural versus modified habitat, offsets and net gain, or the project's impacts (Guidance Note 6, GN60)
ps6.vulnerable_judgement- IFC PS6 criterion 1(b): whether losing a Vulnerable species' concentration here would move its Red List category to Endangered or Critically Endangered is a judgement; each Vulnerable row is marked, never screened by rule
raster.geokeys_unreadable- GeoTIFF keys present that resolve to no code (user-defined or malformed) — quoted rather than guessed at
raster.no_georeference- a real raster we opened that states no position — no tie point, no pixel scale, no ModelTransformation, no world file
raster.pixels_not_read- a raster we OPENED and read the georeference of — the pixels were never decoded, and this is what says so on a SUCCESSFUL read
sensitivity.criteria_unevaluated- Chapman 2020 decides a sensitivity category from four criteria that are the data holder's documented determinations; the criteria named here have none, so no category and no treatment is attached — a legal listing is not that determination
site.no_coordinates- the layer holds no coordinates, so there is no site to place, delineate or screen
site.outside_canada- the site is outside Canada, and every source the site screen holds covers Canada only
site.over_time- the site build did not finish inside the time this door gives one answer, so it stopped and kept nothing — our reader's speed on this file, said before the wall rather than after it