why would listdata.svc return an error

With the new features in Excel like PowerQuery, you can get the data from Sharepoint lists and aggregate it in nicely formatted reports.

This is cool.

To get the data, Excel will connect to _vti_bin/listdata.svc and retrieve first the lists, then on select, will get the list items and work with them.

Under specific circumstances , the service will return either an HTTP 404 Error - Page not found or an 400 Bad Request.

This is not cool. Especially since you do not get a correlation ID to trace the error.

Some of the reasons for this behavior are detailed below.

1. you have one list that has one column with an invalid character in the name

for example , you defined a column in list Requests, with the name "# " for an internally ID

in this case you will get a 404 when accessing _vti_bin/listdata.svc but you will be able to access /vti_bin/listdata.svc/OTHERLISTNAME. you can use that in accessing each doclib/list via listdata.svc. If you get a 500 Internal server Error on one list , you hit the spot.

2. you created programatically one list that has multiple views set as DEFAULT View.

in this case you will get a 400 regardless if you access the root or a list specific service URL.

Solutions:

1. Obviously rename the column

2. use powershell or CSOM to set one view as Default. This will set the other invalid default views as non default and all should resume working.

See here for valid characters :https://support.microsoft.com/kb/905231