Static validation errors and warnings

This page provides a list of validation errors and warnings for the Static Transit feed, as well as tips on how to troubleshoot these issues.

Static validation errors

Validation errors are critical blocking issues that you must fix before Google can correctly process your feed.

To debug these errors, use the information in the following table.

  • The "Error message" column provides the message that displays in the validation report in the Transit Partner Dashboard. It summarizes the error.
  • The "Relevant file" column provides the files that you need to open and troubleshoot.
  • The "Troubleshooting tips" column provides the major steps you need to take to resolve the error.
Error message
Relevant file
Troubleshooting tips
Agencies With Different Languages
agency.txt
In the agency_lang column, verify that all agencies use the same agency_lang value.
Agencies With Different Timezones
agency.txt
In the agency_timezone column, verify that all agencies use the same agency_timezone value.
Agency Language And Feed Language Mismatch
agency.txt , feed_info.txt

Verify that the languages codes in the following columns of both files are the same:

  • agency_lang column in the agency.txt file
  • feed_lang column in the feed_info.txt file
Feed Has No Language Specified
agency.txt , feed_info.txt

Verify that the following columns provide a language code in one of the files:

  • agency_lang column in the agency.txt file
  • feed_lang column in the feed_info.txt file
Missing Required Column
Any
Add the missing column into the corresponding text ( .txt ) file.
Deprecated Column In attributions.txt
attributions.txt
Delete the deprecated attribution_text column.
Expired Feed Has Very Short Service
calendar.txt
Verify that the start_date and end_date columns in the feed are up to date and have meaningful start dates and end dates.
Fare Rule With Both Route Id References
fare_rules.txt
Examine the route_id and contains_id columns. You can define the fare rules using either route_id or contains_id . Therefore, it's not necessary to fill values into both the columns.
More Than One Feed Info Entry
feed_info.txt
Ensure that there's only one entry in the feed_info.txt file.
Overlapping Frequency-Based Trips
frequencies.txt
Examine the trip_id , start_time , and end_time columns. Ensure that the rows with the same trip_id value don't have any overlapping start_time and end_time intervals.
Frequency-Based Trip Transfer
frequencies.txt , transfers.txt
Verify that the from_stop_id and to_stop_id columns in the transfers.txt file don't reference any trips with an entry of exact_times=0 in the frequencies.txt file.
Missing Required Column For Pathways
pathways.txt
Verify that the pathways.txt file includes both the pathway_mode and is_bidirectional columns.
Missing Required Value For Pathways
pathways.txt
Verify that both the pathway_mode and is_bidirectional columns have valid values.
Route Short Name Or Long Name Required
routes.txt
Examine the route_short_name and route_long_name columns. Ensure that each route includes a value in at least one of these columns.
Too Many Entries
routes.txt , stops.txt
Verify that the entries in routes.txt and stops.txt contain accurate information that reflects a real-world transit system.
Shape With Partial Shape-Distance-Traveled Values
shapes.txt
Examine the shape_dist_traveled column. If there’s any shape_dist_traveled values defined, you must define this value for all shape points. Otherwise, leave these values empty.
Point Location Too Close To Origin (0,0)
shapes.txt , stops.txt

Verify that the following columns have accurate values for the latitude and longitude instead of ( 0 , 0 ):

  • shape_pt_lat and shape_pt_lon columns in the shapes.txt file
  • stop_lat and stop_lon columns in the stops.txt file
Point Location Too Close To North/South Pole
shapes.txt , stops.txt

Verify that the following columns have accurate values for the latitude and longitude instead of ( 90 , 0 ) or ( -90 , 0 ):

  • shape_pt_lat and shape_pt_lon columns in the shapes.txt file
  • stop_lat and stop_lon columns in the stops.txt file
Stop Times with Arrival Before Previous Departure Time
stop_times.txt
Examine the stop_sequence , arrival_time , and departure_time columns. Ensure that each departure_time value for an earlier entry isn't later than the arrival_time value of a subsequent entry.
Stop Times with Only Arrival or Departure Time Specified
stop_times.txt
Specify the values for both the arrival_time and departure_time columns.
Trip Departure Time Is Too Long
stop_times.txt
Sort the stop_sequence column in ascending order. To verify the trip, use the trip_id column in the first entry. Verify that its associated departure_time column has a reasonable value.
Trip Is Too Long
stop_times.txt
Verify that the departure_time and arrival_time columns have reasonable values that reflect real-world conditions.
Trip With Out-of-Order Arrival Time
stop_times.txt
Examine the arrival_time and stop_sequence columns. There might be one or more values out of order with the previous entry. The arrival_time and stop_sequence values always need to be greater than the value in the previous trip's entry.
Trip With Out-of-Order Departure Time
stop_times.txt
Examine the departure_time and stop_sequence columns. There might be one or more values out of order with the previous entry. The departure_time and stop_sequence values always need to be greater than the value in the previous trip's entry.
Trip With Out-of-Order Shape-Distance-Traveled
stop_times.txt
Examine the shape_dist_traveled column. There might be one or more values out of order with the previous entry of a particular trip_id value. The shape_dist_traveled values always need to be greater than the value in the previous trip's entry.
Location Without Parent Station
stops.txt
Examine the location_type column with values 2 (entrance), 3 (generic node), or 4 (boarding area). Ensure that each of these values has an associated value in the parent_station column.
Parent Station with Wrong Location Type
stops.txt
Examine the parent_station and location_type columns. Verify that the stations have a location_type value of 1 .
Station With Parent Station
stops.txt
Examine the location_type and parent_station columns. Verify that each station ( location_type=1 ) doesn't have a parent_station value.
Stop With Parent Station And Timezone
stops.txt
Examine the parent_station and stop_timezone columns. If a stop has a parent station, it inherits the parent station's timezone. Therefore, if there's a value for parent_station , leave the stop_timezone value empty.
Unable to Find Any Stops
stops.txt
Verify that the stops.txt file is present and has one or more rows with valid values.
Location With Stop Time Overrides
stops.txt , stop_times.txt

Verify that the following columns all reference locations that must be stops ( location_type=0 ):

  • location_type column in the stops.txt file
  • stop_id column in the stop_times.txt file
Location With Stop Times
stops.txt , stop_times.txt

Verify that the following columns all reference locations that must be stops ( location_type=0 ):

  • location_type column in the stops.txt file
  • stop_id column in the stop_times.txt file
Transfer With Invalid Route and Trip
transfers.txt
Examine the from_route_id , to_route_id , from_trip_id , and to_trip_id columns. Verify that each entry that references a route and a trip has the trip belong to the specified route.
Duplicate Transfers
transfers.txt
Verify that each column in the transfers.txt file has no duplicate entries.
Min Transfer Time With Invalid Transfer Type
transfers.txt
Verify that the values in the min_transfer_time column match with a transfer_type value of 2 . That's because only this transfer type requires a minimum amount of time between the trip's arrival and departure.
Transfer Between Stop And Station
transfers.txt
Examine the from_stop_id and to_stop_id columns. Ensure that the transfers.txt file doesn’t have any ambiguous stop-to-station and station-to-stop transfers. Specifically, if a transfer is found from a first station to a stop contained in a second station, and a different transfer is found from a stop contained in the first station to the second station.
Translation Unexpected Value
translations.txt
Verify in all columns that the fields that must be empty don't have any values.
Block Trips With Overlapping Stop Times
trips.txt
Examine the block_id column to see if any stop times overlap each other. Two trips in the same block can't have overlapping stop times if both trips are active on the same service date. Specifically, the last departure time of a trip in a block needs to be less than or equal to the first arrival time of the next trip in the block.
Duplicate GTFS File
The zip file that contains all of the text ( .txt ) files
Avoid uploading duplicate zip files to your Transit Partner Dashboard. Only upload a zip file when it contains new data.
Unable to Open GTFS
The zip file that contains all of the text ( .txt ) files
Compress all of the text files directly into a zip file and upload it to your Transit Partner Dashboard again.

Static validation warnings

Validation warnings are messages that indicate potential problems with your feed. It’s important to troubleshoot these warnings. If you leave them unresolved, the data in your feed might display incorrectly on Google Maps.

To debug the warning, use the information from the following table.

  • The "Warning message" column provides the message that displays in the validation report in the Transit Partner Dashboard. It summarizes the warning.
  • The "Relevant file" column provides the file that you need to open and troubleshoot.
  • The "Troubleshooting tips" column provides the major steps you need to take to resolve the warning.
Warning message
Relevant file
Troubleshooting tips
Feed Has No Language Specified
agency.txt
Add an agency_lang column in the agency.txt file. Alternatively, add a feed_info.txt file.
Invalid Phone Number
agency.txt and attributions.txt

Verify that the values in the following columns are compliant with phone number naming conventions:

  • agency_phone column in agency.txt
  • attribution_phone column in attributions.txt
Unknown Column
Any
Open the file mentioned in the warning, examine it for typos in the column name, or delete the column if it's redundant.
Unknown File
Any
Open the file mentioned in the warning, examine it for typos in the filename, or delete the redundant file.
Leading Or Trailing Whitespaces
Any
Examine the affected columns and delete all leading or trailing whitespaces from the values.
Empty Column Name
Any
Examine the affected file. Ensure that there are no empty column names.
Empty Row
Any
Examine the affected file and ensure that each row contains valid values.
Translation Unexpected Value
Any
Examine the affected file. Ensure that any columns that must be empty in fact have no value.
Invalid URL

Any of the following files:

  • agency.txt
  • attributions.txt
  • feed_info.txt
  • routes.txt
  • stops.txt

Look for any invalid URL values in the following columns:

  • stop_url column in stops.txt
  • route_url column in routes.txt
  • feed_publisher_url column in feed_info.txt
  • agency_fare_url column in agency.txt
  • agency_url column in agency.txt
Deprecated Column In attributions.txt
attributions.txt
Find the deprecated column and remove it.
Feed Has No Calendar Date Exceptions
calendar_dates.txt
If the service is inactive on any days such as holidays, be sure to provide the date information.
Calendar Has No Active Days Of Week
calendar.txt
Examine the monday to sunday columns to ensure that each calendar entry has at least one active day of the week.
Feed Expiration
calendar.txt
Verify in the feeds that the end_date column includes the current date along with dates in the near future.
Feed Has Very Short Service
calendar.txt
Verify that the feed's start_date and end_date columns have at least 14 days of service.
Calendar Service Id Has No Active Days
calendar.txt and calendar_dates.txt
Verify that the service_id values for each service have at least some active service dates.
Feed Has No Service Dates
calendar.txt and calendar_dates.txt

Verify that the following columns have active service dates:

  • The start_date and end_date columns in the calendar.txt file
  • The date and exception_type columns in the calendar_dates.txt file
Service Date Gap
calendar.txt and calendar_dates.txt

Verify that there are no major gaps in the services dates in the following columns. Large gaps indicates a break in transit service:

  • The start_date and end_date columns in the calendar.txt file
  • The date and exception_type columns in the calendar_dates.txt file
Fares With and Without Rules
fare_attributes.txt and fare_rules.txt
Examine the fare_id column to verify that all of the fares in the fare_attributes.txt file are associated with rules in the fare_rules.txt file.
Multiple Fares Without Rules
fare_attributes.txt and fare_rules.txt
Examine the fare_id column to verify that all fares in the fare_attributes.txt file are associated with rules in the fare_rules.txt file.
Feed Info Early Start
feed_info.txt
Examine the feed_start_date column to verify that the services in this feed start at an appropriate time.
Future Service
feed_info.txt

Examine the feed_start_date column to verify that the services in this feed start at a reasonable time.

Missing Feed Info Date
feed_info.txt
Examine the feed_start_date and feed_start_end columns. If one column contains a value, be sure to enter a value into the other column.
Frequency Headway Longer Than Interval
frequencies.txt
Examine each entry in the frequencies.txt file to verify that the headway_secs value isn't greater than the difference between the end_time value and the start_time value.
Inconsistent exact times frequency
frequencies.txt
Verify that the values of the exact_times column are the same for all the rows with the same trip_id .
Low Frequency
frequencies.txt
Examine the headway_secs column to make sure the value is no greater than 1800 seconds. To increase the frequency, shorten this time interval based on real-world conditions. You could model the trip with exact times (using exact_times=1 in frequencies.txt ) or model the individual trips in trips.txt .
Overlapping Frequency-Based Trips
frequencies.txt
Examine all of the rows with the same trip_id value to verify that there's no overlapping in the start_time and end_time interval.
Too Frequent
frequencies.txt
Verify that the recommended headway in the headway_secs column is longer than one minute, which means the value must be higher than 60 .
Missing Reciprocal Pathways
pathways.txt
Verify that the is_bidirectional column is present and has values that are valid. Verify that no entry has reversed values in the from_stop_id and to_stop_id columns.
Missing required value for pathways
pathways.txt

Verify that these columns aren't empty and have values:

  • pathway_mode
  • is_bidirectional
Pathway Is A Loop
pathways.txt
Examine the from_stop and to_stop columns and verify that in each entry, these columns contain different values. This defines useful pathways for the passengers.
Route Color Contrast
routes.txt
Verify that the route_text_color and route_color columns use contrasting colors, as they're often used as text and background colors to display route names. Learn more about accessible color contrast ratios (4.5:1 for text).
Route name has special characters
routes.txt
Examine the route_long_name and the route_short_name columns. Remove or replace any special characters, such as ! $ % \ * = _ .
Route Name Reused
routes.txt

Examine the route_short_name and route_long_name columns. We recommended that they have unique values.

Route Short Name Equals Long Name
routes.txt

Examine the route_short_name and route_long_name columns. Route short names need to be different from the route long names.

Route Short Name Is Contained In Long Name
routes.txt
Verify that there are no overlapping values in the route_short_name or route_long_name columns.
Route Short Name Is Too Long
routes.txt

Verify that the short route names in the route_short_name column have no more than six characters.

Route Long Name Is Short
routes.txt
Verify that the route_long_name column contains meaningful values instead of short names.
Route Name Equals Description
routes.txt
Verify that the route_short_name and route_long_name columns don't contain any overlapping values from the route_desc column.
Block Trips with Inconsistent Route Types
routes.txt and trips.txt
Trips with the same block_id values in the trips.txt file need to have consistent route_type values in the routes.txt file.
Non-Increasing shape_dist_traveled Along A Shape
shapes.txt
Verify that each pair of consequent points in the shape_dist_traveled column has increasing values.
Stop does not match shape_dist_traveled value
shapes.txt and stop_times.txt
Verify that the stop entries in the stop_times.txt file aren't away from the stop location as defined by shape_dist_traveled values in shapes.txt .
Stop Too Far From Shape
shapes.txt and stop_times.txt
Examine the stop entries in the stop_times.txt file and the shape entries in the shapes.txt file. Each stop must not be more than approximately 100 meters away from the trip's path of travel.
Stops Match Shape In Wrong Order
shapes.txt and stop_times.txt
Verify that the stop entries in the stop_times.txt file are consistent with the arrival-departure order as defined by the shape in the shapes.txt file.
Stop Has Too Many Matches For Shape
shapes.txt and stop_times.txt
Examine the stop entry in stop_times.txt and reduce the potential matches to the trip's path of travel, as defined by the shape entry in shapes.txt .
Trip With Shape-Distance-Traveled Values But None For Shape
shapes.txt and stop_times.txt
Examine the shape_dist_traveled column in the stop_times.txt file. Be sure to specify the shape_dist_traveled values in the shapes.txt file for the shape associated with the trip.
Trip With Shape-Distance-Traveled Values But No Shape
shapes.txt and stop_times.txt
Examine the shape_dist_traveled column in stop_times.txt and shape_id column in trips.txt . Verify that the trip has shape_dist_traveled values and corresponding shape_id values.
Unused Shape
shapes.txt and trips.txt
Examine the shape_id column in both shapes.txt and trips.txt . Verify that the trips.txt file references each shape_id value from shapes.txt .
Fast Travel Between Far Stops
stop_times.txt
Examine the arrival_time and departure_time columns in the stop_times.txt file. Verify that the average speed of the transit vehicle is within the appropriate range, and calculate the time to reach the far stops accordingly.
Fast Travel Between Stops
stop_times.txt
Examine the arrival_time and departure_time columns in the stop_times.txt file. Verify that the average speed of the transit vehicle is within the appropriate range, and calculate the time accordingly.
Stop headsign has special characters
stop_times.txt
Examine the stop_headsign column. Remove or replace any special characters, such as ! $ % \ * = _ .
Stop Times with Long Arrival Interval
stop_times.txt
Examine the arrival_time column. Verify that any two consecutive stops that belong to the same trip have arrival times separated by no more than 24 hours.
Stop Times with Long Departure-Arrival Interval
stop_times.txt
Examine the departure_time and arrival_time columns. Verify that the time between departure and the next possible arrival is no more than 24 hours.
Suspicious trip first departure time
stop_times.txt
Verify that the trip's first departure time in the departure_time column is no more than 36 hours.
Too Many Consecutive Stop Times With Same Time
stop_times.txt
Examine the departure_time and arrival_time columns. Verify that consecutive stops that are far from each other don't have the same arrival and departure times.
Trip With Partial Shape-Distance-Traveled Values
stop_times.txt
Examine the shape_dist_traveled column. Include distance values for either all stops or none.
Stop Time Timepoint Without Time Specified
stop_times.txt
Verify that the arrival_time and departure_time columns contain valid timepoints.
Trip With No Pickup Or Dropoff
stop_times.txt
Verify that the pickup_type and drop_off_type columns have valid values, or remove the columns if they don’t contain any values.
Unusable Trip
stop_times.txt and trips.txt
Examine the trip_id column in both trips.txt and stop_times.txt . Verify that each trip_id value has at least two entries in stop_times.txt .
Unused Trip
stop_times.txt and trips.txt
Examine the trip_id column in both trips.txt and stop_times.txt . Verify that the stop_times.txt file references each trip_id value from the trips.txt file.
Location Too Far From Its Parent
stops.txt

Examine the parent_station column:

  • Verify whether the stop is part of the parent station.
  • Verify that the stop (platform, entrance, generic node, or boarding area) isn't too far from its parent location.
Platform code is missing
stops.txt
Examine the stop_name and platform_code columns. Verify that any stop_name column that contains a platform code has a corresponding value in the platform_code column.
Station Unused
stops.txt
Examine the parent_station column. A station ( location_type=1 ) needs to have a group of child stops linked to the station.
Stations Too Close
stops.txt

Examine the stop_id , stop_lat , and stop_lon columns of the stations:

  • Verify whether they're actually the same station.
  • Verify that the locations are accurate.
Stop name has special characters
stops.txt
Examine the stop_name column. Remove or replace any special characters, such as ! $ % \ * = _ .
Stop name has stop code or id
stops.txt
Verify that the stop_name column doesn't contain any stop_code or stop_id values.
Stop Too Close To Station
stops.txt
Verify whether the stop belongs to the station. If that’s the case, link the stop to the station in the parent_station column.
Stops Too Close
stops.txt

Examine the stop_id , stop_lat , and stop_lon columns of the stops:

  • Verify whether they're actually the same stop.
  • Verify that the locations are accurate.
Stops With Same Name And Description
stops.txt
Verify that the stop_name and stop_desc columns contain different values for each stop.
Platform Without Parent Station
stops.txt
Verify that the parent_station field contains valid values for platforms that contain the platform_code column.
Unreachable Location In A Station
stops.txt
Examine the location_type column. Verify that all platforms ( location_type=1 ) and generic nodes ( location_type=3 ) are reachable in at least one direction: from the entrance or to the exit.
Dangling Generic Node
stops.txt
Examine the location_type column. A generic node ( location_type=3 ) links pathways together, so it must have two or more incident locations (defined in from_stop_id and to_stop_id in pathways.txt ).
Stop Unused
stops.txt and stop_times.txt
Examine the stop_id column in stops.txt and stop_times.txt . Each stop needs to be referenced by a number of stop times, describing the schedule of transit vehicles that are serving that stop.
Min Transfer Time Is Very Large
transfers.txt
Verify that the values in the min_transfer_time column are reasonable; that is, not much longer than the actual transfer time that a passenger takes by walking.
Transfer Distance Is Very Large
transfers.txt
Examine the from_stop_id and to_stop_id columns. Verify that the distance between two transfer stops is reasonable; that is, not much larger than the distance that a passenger walks
Transfer Walking Speed Is Too Fast
transfers.txt
Verify that the values in the min_transfer_time column are reasonable; that is, not much shorter than the actual transfer time that a passenger takes by walking.
Unofficial Translation Format Detected
translations.txt
Verify that the table_name column is present and contains valid values.
Trip Headsign Contains Route Long Name
trips.txt
Examine the trip_headsign and route_long_name columns. Because they both display on Google Maps, ensure that the trip_headsign column doesn't contain the route_long_name values.
Trip Headsign Contains Route Short Name
trips.txt
Examine the trip_headsign and route_short_name columns. Because they both display on Google Maps, ensure that the trip_headsign column doesn't contain the route_short_name values.
Trip headsign has special characters
trips.txt
Examine the trip_headsign column. Remove or replace any special characters, such as ! $ % \ * = _ .
Trip Duplicates
trips.txt , and possibly calendar.txt , calendar_dates.txt , stop_times.txt

Verify in the following files that there are no duplicate trips at the same stop times, on the same active service dates:

  • In the trips.txt file, examine the block_id , trip_id , and service_id columns.
  • In the stop_times.txt file, examine the trip_id , arrival_time , and departure_time columns.
  • In the calendar.txt and calendar_dates.txt files, examine the active service dates.
Block Trips with Overlapping Stop Times
trips.txt , and possibly calendar.txt , calendar_dates.txt , stop_times.txt

Verify in the following files that there are no overlapping stop times on the same active service dates for the trip:

  • In the trips.txt file, examine the block_id , trip_id , and service_id columns.
  • In the stop_times.txt file, examine the trip_id , arrival_time , and departure_time columns.
  • In the calendar.txt and calendar_dates.txt files, examine the active service dates.
Create a Mobile Website
View Site in Mobile | Classic
Share by: