Validator reference

Every GTFS notice,
one place to fix it.

Browse 191 GTFS validation notice codes with severity, affected files, report fields, repair guidance, and specification references.

SeverityNoticeFiles to check
WARNING agency_phone_invalidCheck the agency's public phone number agency.txt WARNING attribution_without_roleAn attribution does not say what the organization does attributions.txt ERROR bidirectional_exit_gateAn exit-only gate allows travel in both directions pathways.txt INFO big_gap_in_serviceA service has a gap of at least 14 days calendar.txt, calendar_dates.txt ERROR block_trips_with_overlapping_stop_timesOne vehicle is assigned to overlapping trips trips.txt ERROR csv_parsing_failedA file could not be read as CSV See report ERROR decreasing_or_equal_stop_time_distanceDistance does not increase between stops stop_times.txt ERROR decreasing_shape_distanceDistance goes backwards along a shape shapes.txt WARNING duplicate_fare_mediaTwo fare media have the same name and type fare_media.txt ERROR duplicate_geo_json_keyTwo geographic features use the same ID locations.geojson ERROR duplicate_geography_idAn ID is shared by different location types stops.txt, location_groups.txt ERROR duplicate_keyTwo rows have the same unique key See report WARNING duplicate_route_nameTwo routes have indistinguishable names routes.txt WARNING duplicate_tripTwo records describe the same scheduled trip stop_times.txt, trips.txt ERROR duplicated_columnA column name appears twice See report ERROR empty_column_nameA column has no name See report ERROR empty_fileA GTFS file has no usable content See report WARNING empty_rowA file contains a blank row See report ERROR equal_shape_distance_diff_coordinatesDifferent shape points have the same distance shapes.txt WARNING equal_shape_distance_diff_coordinates_distance_below_thresholdNearby shape points share a rounded distance shapes.txt WARNING equal_shape_distance_same_coordinatesA shape repeats the same point and distance shapes.txt WARNING expired_calendarA service's active dates have ended calendar.txt, calendar_dates.txt ERROR fare_product_with_multiple_default_rider_categoriesA fare product has more than one default rider category fare_products.txt, rider_categories.txt ERROR fare_transfer_rule_duration_limit_type_without_duration_limitA transfer time limit has no duration fare_transfer_rules.txt ERROR fare_transfer_rule_duration_limit_without_typeA transfer duration does not say how to measure it fare_transfer_rules.txt ERROR fare_transfer_rule_invalid_transfer_countThe allowed transfer count is invalid fare_transfer_rules.txt ERROR fare_transfer_rule_with_forbidden_transfer_countA transfer count is set where it is not allowed fare_transfer_rules.txt ERROR fare_transfer_rule_without_transfer_countA within-group transfer rule has no transfer count fare_transfer_rules.txt WARNING fast_travel_between_consecutive_stopsTravel between two stops appears too fast routes.txt, stop_times.txt WARNING fast_travel_between_far_stopsTravel between distant stops appears too fast routes.txt, stop_times.txt WARNING feed_expiration_date30_daysThe feed has less than a month of validity left feed_info.txt WARNING feed_expiration_date7_daysThe feed expires within seven days feed_info.txt WARNING feed_info_lang_and_agency_lang_mismatchThe feed and agency languages do not agree agency.txt, feed_info.txt INFO feed_valid_beyond_total_service_windowFeed validity extends well beyond the service dates feed_info.txt, calendar.txt ERROR forbidden_arrival_or_departure_timeA stop-time row mixes fixed times and a service window stop_times.txt ERROR forbidden_continuous_pickup_drop_offRoute-wide continuous service conflicts with a pickup window routes.txt, stop_times.txt ERROR forbidden_drop_off_typeScheduled drop-off conflicts with a service window stop_times.txt ERROR forbidden_geography_idA stop-time row identifies more than one location stop_times.txt ERROR forbidden_pickup_typeThe pickup type conflicts with a service window stop_times.txt ERROR forbidden_prior_day_booking_field_valueAn advance-booking rule contains incompatible fields booking_rules.txt ERROR forbidden_prior_notice_start_dayTwo alternative booking-window limits are both set booking_rules.txt ERROR forbidden_prior_notice_start_timeA booking start time has no start day booking_rules.txt ERROR forbidden_real_time_booking_field_valueA real-time booking rule contains advance-notice fields booking_rules.txt ERROR forbidden_same_day_booking_field_valueA same-day booking rule contains incompatible fields booking_rules.txt ERROR forbidden_shape_dist_traveledA distance is assigned to an area or stop group stop_times.txt ERROR foreign_key_violationA record refers to an ID that does not exist See report INFO future_calendarAll services start after today calendar.txt, calendar_dates.txt INFO future_feedThe feed's validity starts after today feed_info.txt ERROR geo_json_duplicated_elementA GeoJSON object contains a repeated field locations.geojson INFO geo_json_unknown_elementA GeoJSON field is not recognized locations.geojson ERROR google_ic_price_checkThe Google smart-card fare value is invalid fare_attributes.txt WARNING google_transfer_type_checkGoogle Transit may ignore this transfer type transfers.txt WARNING headway_too_largeThe interval between departures is over an hour frequencies.txt ERROR i_o_errorThe validator could not read or write data See report WARNING inconsistent_agency_langAgencies use different language tags agency.txt ERROR inconsistent_agency_timezoneAgencies in one feed use different time zones agency.txt WARNING inconsistent_route_type_for_block_idOne vehicle block mixes transport types routes.txt, trips.txt WARNING inconsistent_route_type_for_in_seat_transferA stay-on-board transfer connects different transport types routes.txt, transfers.txt ERROR invalid_characterA text value contains a damaged or invalid character See report ERROR invalid_colorA color is not a six-digit hexadecimal value See report ERROR invalid_currencyA currency code is not recognized See report ERROR invalid_currency_amountA fare amount does not match its currency's precision See report ERROR invalid_dateA date is not a valid YYYYMMDD value See report ERROR invalid_emailAn email address has an invalid format See report ERROR invalid_floatA field contains an unreadable decimal number See report ERROR invalid_geometryA service-area polygon is invalid locations.geojson ERROR invalid_input_files_in_subfolderGTFS files are inside a folder in the ZIP See report ERROR invalid_integerA whole-number field contains another kind of value See report ERROR invalid_language_codeA language tag is invalid See report ERROR invalid_phone_numberA phone number does not pass the regional format check See report ERROR invalid_pickup_drop_off_windowA pickup/drop-off window does not end after it starts stop_times.txt ERROR invalid_prior_notice_duration_minThe minimum booking notice exceeds the maximum booking_rules.txt ERROR invalid_row_lengthA CSV row has the wrong number of fields See report ERROR invalid_timeA time is not in GTFS format See report ERROR invalid_timezoneA time-zone name is not recognized See report ERROR invalid_urlA web address has an invalid format See report WARNING leading_or_trailing_whitespacesA value has extra spaces at its edges See report ERROR location_with_unexpected_stop_timeA scheduled stop refers to the wrong location type stop_times.txt, stops.txt ERROR location_without_parent_stationA location is missing its required parent stops.txt ERROR malformed_jsonA JSON file cannot be read See report WARNING missing_bike_allowanceA ferry trip does not state whether bikes are allowed routes.txt, trips.txt ERROR missing_calendar_and_calendar_date_filesThe feed has no service calendar calendar.txt, calendar_dates.txt WARNING missing_feed_contact_email_and_urlThe feed has no data-support contact feed_info.txt WARNING missing_feed_info_dateOnly one feed-validity date is provided feed_info.txt ERROR missing_level_idAn elevator endpoint has no station level stops.txt, pathways.txt WARNING missing_pickup_drop_off_booking_rule_idA bookable service does not link to booking instructions stop_times.txt ERROR missing_pickup_or_drop_off_windowA service window is missing one boundary stop_times.txt ERROR missing_prior_day_booking_field_valueAn advance-booking rule has an incomplete deadline booking_rules.txt ERROR missing_prior_notice_duration_minA same-day booking rule has no minimum notice booking_rules.txt ERROR missing_prior_notice_last_dayAn advance-booking deadline is missing its day booking_rules.txt ERROR missing_prior_notice_last_timeAn advance-booking deadline is missing its time booking_rules.txt ERROR missing_prior_notice_start_timeA booking opening day is missing its time booking_rules.txt WARNING missing_recommended_columnA recommended column is missing See report WARNING missing_recommended_fieldA recommended value is missing from a row See report WARNING missing_recommended_fileA recommended GTFS file is absent See report ERROR missing_required_agency_idA multi-agency feed is missing an agency ID agency.txt, fare_attributes.txt ERROR missing_required_columnA required column is missing from the header See report ERROR missing_required_elementA GeoJSON object is missing a required element locations.geojson ERROR missing_required_fieldA required value is empty See report ERROR missing_required_fileThe archive is missing a required GTFS file See report ERROR missing_stop_nameA stop, station, or entrance has no name stops.txt ERROR missing_stop_times_recordTravel within a flexible area needs a second record stop_times.txt WARNING missing_timepoint_valueA timed stop does not say whether its times are exact stop_times.txt ERROR missing_trip_edgeThe first or last stop is missing required times stop_times.txt WARNING mixed_case_recommended_fieldPassenger text uses an unusual letter case See report WARNING more_than_one_entityA single-record file contains multiple records See report ERROR new_line_in_valueA field contains an unexpected line break See report WARNING non_ascii_or_non_printable_charAn ID contains unusual or invisible characters See report ERROR number_out_of_rangeA number is outside the allowed range See report ERROR overlapping_frequencyDeparture-frequency periods overlap for one trip frequencies.txt ERROR overlapping_zone_and_pickup_drop_off_windowFlexible service areas overlap at the same time stop_times.txt, locations.geojson WARNING pathway_dangling_generic_nodeAn internal station node connects to only one location pathways.txt, stops.txt WARNING pathway_loopA pathway starts and ends at the same location pathways.txt ERROR pathway_to_platform_with_boarding_areasA pathway should connect to a boarding area pathways.txt ERROR pathway_to_stop_with_access_outside_of_station_pathwaysA street-access stop is linked into station pathways pathways.txt, stops.txt ERROR pathway_to_wrong_location_typeA pathway points to a station container pathways.txt ERROR pathway_unreachable_locationPart of the station cannot be reached or exited pathways.txt, stops.txt INFO platform_without_parent_stationA stop or platform has no parent station stops.txt ERROR point_near_originA coordinate is suspiciously close to 0,0 See report ERROR point_near_poleA coordinate is suspiciously close to a pole See report ERROR prior_notice_last_day_after_start_dayThe booking deadline precedes the booking opening window booking_rules.txt ERROR route_both_short_and_long_name_missingA route has no passenger-facing name routes.txt WARNING route_color_contrastThe route text is hard to read against its color routes.txt WARNING route_long_name_contains_short_nameThe long route name repeats the short name routes.txt ERROR route_networks_specified_in_more_than_one_fileRoute-network membership uses conflicting sources routes.txt, route_networks.txt WARNING route_short_name_too_longThe short route name is longer than 12 characters routes.txt ERROR runtime_exception_in_loader_errorThe validator failed while loading a file See report ERROR runtime_exception_in_validator_errorA validation rule failed unexpectedly See report WARNING same_name_and_description_for_routeThe route description repeats its name routes.txt WARNING same_name_and_description_for_stopThe stop description repeats its name stops.txt WARNING same_route_and_agency_urlA route link opens the agency's general page agency.txt, routes.txt WARNING same_stop_and_agency_urlA stop link opens the agency's general page agency.txt, stops.txt WARNING same_stop_and_route_urlA stop link opens a route page routes.txt, stops.txt INFO service_extends_far_in_the_futureA service calendar extends more than two years ahead calendar.txt, calendar_dates.txt WARNING service_has_no_active_day_of_the_weekA weekly calendar has no operating weekdays calendar.txt WARNING service_never_activeA service is never scheduled to run calendar.txt, calendar_dates.txt INFO service_window_outside_feed_periodService dates fall outside the declared feed period feed_info.txt, calendar.txt WARNING single_shape_pointA route shape contains only one point shapes.txt ERROR start_and_end_range_equalAn interval starts and ends at the same time See report ERROR start_and_end_range_out_of_orderAn interval ends before it starts See report ERROR station_with_parent_stationA station is nested under another location stops.txt ERROR stop_access_specified_for_incorrect_locationThe access flag is set on the wrong location type stops.txt ERROR stop_access_specified_for_stop_with_no_parent_stationThe access flag is set on a standalone stop stops.txt WARNING stop_has_too_many_matches_for_shapeA stop matches several parts of the route shape stop_times.txt, stops.txt WARNING stop_headsign_invalid_charA stop headsign contains a Google-incompatible character stop_times.txt ERROR stop_time_timepoint_without_timesAn exact timepoint is missing its times stop_times.txt ERROR stop_time_with_arrival_before_previous_departure_timeThe next stop is reached before the previous departure stop_times.txt ERROR stop_time_with_only_arrival_or_departure_timeA stop has only an arrival time or only a departure time stop_times.txt WARNING stop_too_far_from_shapeA stop is too far from the trip's route line shapes.txt, stop_times.txt WARNING stop_too_far_from_shape_using_user_distanceA stop's distance places it far from its real location stop_times.txt, stops.txt ERROR stop_without_locationA stop, station, or entrance is missing coordinates stops.txt WARNING stop_without_stop_timeNo trip directly visits this stop stop_times.txt, stops.txt INFO stop_without_zone_idA stop is missing a zone required by its fare rules stops.txt, stop_times.txt WARNING stops_match_shape_out_of_orderThe stop order disagrees with the route shape stop_times.txt, stops.txt ERROR thread_execution_errorA background validation task failed See report ERROR timeframe_only_start_or_end_time_specifiedA fare timeframe is missing one time boundary timeframes.txt ERROR timeframe_overlapFare timeframes overlap within the same group and service timeframes.txt ERROR timeframe_start_or_end_time_greater_than_twenty_four_hoursA fare timeframe uses a time after 24:00:00 timeframes.txt WARNING too_many_days_without_serviceThe whole feed has a long gap with no service calendar.txt, calendar_dates.txt ERROR too_many_rowsA file exceeds a processing limit See report INFO transfer_distance_above_2_kmA transfer connects stops more than 2 km apart stops.txt, transfers.txt WARNING transfer_distance_too_largeA transfer connects stops more than 10 km apart stops.txt, transfers.txt ERROR transfer_with_invalid_stop_location_typeA transfer endpoint is not a stop or station transfers.txt ERROR transfer_with_invalid_trip_and_routeA transfer's trip belongs to a different route transfers.txt ERROR transfer_with_invalid_trip_and_stopA transfer's trip does not serve its stated stop transfers.txt WARNING transfer_with_suspicious_mid_trip_in_seatA stay-on-board transfer occurs in the middle of a trip stop_times.txt, stops.txt ERROR translation_foreign_key_violationA translation refers to a record that cannot be found translations.txt ERROR translation_unexpected_valueA translation contains a field that must be empty translations.txt WARNING translation_unknown_table_nameA translation names an unknown or missing table translations.txt WARNING trip_coverage_not_active_for_next7_daysThe main timetable coverage ends within seven days calendar.txt, calendar_dates.txt ERROR trip_distance_exceeds_shape_distanceThe last stop's distance goes beyond the shape shapes.txt, stop_times.txt WARNING trip_distance_exceeds_shape_distance_below_thresholdThe stop distance exceeds the shape despite nearby endpoints shapes.txt, stop_times.txt INFO trip_headsign_matches_intermediate_stopThe destination display names an intermediate stop stop_times.txt, stops.txt INFO trip_with_shape_dist_traveled_but_no_shape_distancesStop distances have no complete matching distances on the shape shapes.txt, stop_times.txt ERROR u_r_i_syntax_errorA resource address cannot be read as a URI See report WARNING unexpected_enum_valueA coded field contains an unrecognized value See report INFO unknown_columnA column name is not recognized See report INFO unknown_fileA file in the archive is not recognized See report INFO unsorted_stop_timesStop-time rows are not grouped and ordered by trip stop_times.txt ERROR unsupported_feature_typeA GeoJSON item is not a Feature locations.geojson ERROR unsupported_geo_json_typeThe GeoJSON root is not a FeatureCollection locations.geojson ERROR unsupported_geometry_typeA service area is not a Polygon or MultiPolygon locations.geojson WARNING unusable_tripA trip has too few stops for a passenger journey stop_times.txt, trips.txt WARNING unused_agencyNo route refers to this agency agency.txt, routes.txt INFO unused_parent_stationA station has no child locations stops.txt WARNING unused_routeA route has no trips routes.txt, trips.txt WARNING unused_shapeNo trip uses this route shape shapes.txt, trips.txt INFO unused_stationA station has no child locations stops.txt WARNING unused_stopA stop is not used by trips or their station hierarchy stop_times.txt, stops.txt WARNING unused_tripA trip has no stop-time records stop_times.txt, trips.txt ERROR wrong_parent_location_typeA location points to the wrong kind of parent stops.txt