passagedata

What we mean when we refuse a column

When we cannot interpret something in your file, we say so and stop — we never guess, because a wrong interpretation is impossible to tell from a right one once it is published. Every refusal carries one of the codes below.

Most files produce a handful of these, not hundreds: each one is a decision about a whole column rather than about a row. A refusal is not a rejection of your data — it is the part of the report that tells you what still needs a human.

131 codes in 27 groups. This page is generated from the same registry the checker emits from, so it cannot drift from what you were actually 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.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.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.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.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.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.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.parallel_sheets
one table split across tabs — the subject is the SHEET NAME
xlsx.shared_strings_unreadable
text cells will be empty
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.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

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

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.duplicate
the same header appears more than once
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

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.refused_other
a value check refused it and the reason is in the message
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.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.rank_refinement_applied
two taxon columns; the finer one was chosen

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.recognised_not_decoded
a coordinate system we DO decode whose values did not decode — almost always a projected CRS in metres, not degrees
gridref.unsupported_form
a well-formed British grid reference in a form we deliberately do not decode — a DINTY tetrad (SK98A), a quadrant (SK98NW), or more than 10 digits. REFUSED rather than widened to the enclosing square, which would discard the precision the recorder wrote

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.metadata_incomplete
the archive cannot be PUBLISHED until facts only the depositor has (creator, description, licence) are supplied

Building the archive

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.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_data_from_file
the file was read and NOTHING in it reached the archive — every emitted value would be one we minted or defaulted ourselves
archive.only_dataset_metadata
every value we could carry describes the DATASET (its name, holder or licence) and none describes a record
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

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.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
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)
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