# Troubleshooting

## ESRI Shapefiles

Shapefiles are a [multi-file format](https://en.wikipedia.org/wiki/Shapefile#Overview), with each file containing some specific data. Three file parts are mandatory (`.shp`, `.shx` and `.dbf`) and, without any of them, your upload will not be successful.

A fourth component (`.prj`) is very common, and used to determine what [Spatial Reference System](https://en.wikipedia.org/wiki/Spatial_reference_system) should be used to interpret the coordinates in your data. If this file is not present, Felt will assume the coordinates are in latitude/longitude (represented by the EPSG code `4326`).

## Spreadsheets

See the [Spreadsheets](/upload-anything/spreadsheets.md) page for general information on tabular file formats like CSV or Excel.

### Point coordinates

* Coordinates must be in latitude and longitude. Other coordinate systems, such as UTM, are not supported.
* Coordinates must be in numeric format, such as **40.7128** or -**74.006**. Felt cannot parse coordinates with text characters, such as **40° 43' 50.1960'' N** or **74.0060° W**.
* Coordinates must be in two separate fields.

### Geocoding

* By default, Felt will geocode address data for up to 10,000 addresses per upload. If you need a higher limit, [contact sales](https://felt.com/sales) to upgrade to our [Enterprise plan](https://felt.com/pricing).
* Context is important. Make sure either your `address` field contains all the necessary information (city, state, country, etc) *or* you have several fields with that information.
* See the [Spreadsheets](/upload-anything/spreadsheets.md) page for general information on how geocoding works.

### Geomatching

See the [Spreadsheets](/upload-anything/spreadsheets.md) page for general information on how Geomatching works.

#### Matching Threshold

Geomatching checks columns in your data for values that match codes or names in our available regions. If a column does not contain a majority of values that match, it will be discarded.

#### Duplicate & Unique Values

Geomatching works best with columns that have unique values. Otherwise, you might end up with the same polygon for California many times, superimposed.

To avoid that, the Geomatching process makes sure the amount of duplicate values (all values that are repeated at least two times) is under a certain threshold.

#### US FIPS Codes

Make sure your US FIPS codes (states, counties, CBSAs and census tracts) aren’t missing leading zeroes. FIPS codes always have a fixed number of digits per boundary type: 2 for states, 5 for counties, 11 for census tracts, etc.

#### US ZIP Codes

Similarly, ZIP codes should always have 5 digits, so watch out for missing leading zeroes. Also, Felt doesn’t currently understand ZIP+4 codes, so remove the extra suffix if present.

## Unsupported File Formats

#### QGIS Metadata Files (`.qmd`, `.qgz`, `.qgs`, `.qml`)

These files don't actually contain any data, just the metadata that defines a QGIS project (such as the style for layers in the project, references to the actual files, etc). Try uploading the original data files (Shapefiles, Geopackages, GeoJSON, etc) instead.

#### ArcGIS Layer Files (`.lyr` and `.lyrx`)

Similarly, the ArcGIS Layer File format does not contain any actual data, but a *reference* to another file that stores the actual data (usually a Shapefile or Geodatabase). Try uploading the original data files to Felt instead.

#### Enhanced Compressed Wavelets (`.ecw`)

ECW is a proprietary format developed by Hexagon Geospatial. Try exporting your data as GeoTIFF (`.tif`) instead.

## URL Uploads

#### Maximum layers per upload

Felt will automatically try to parse and upload all layers from an Esri or OGC service. However, Felt has a maximum of 50 layers per upload. If the service hosts more than that amount, an error will be returned.

For OGC services, users can work around this by specifying which layers to request in the URL query parameters:

* *WMTS* and *WFS*: a single layer in the form of `?layer=X`
* *WMS*: one or more layers in the form of `?layers=X,Y`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.felt.com/upload-anything/troubleshooting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
