CouchDB view throwing invalid UTF-8 JSON error when using key, startkey

Jim Wharton picture Jim Wharton · Mar 17, 2011 · Viewed 13.2k times · Source

I have a VERY basic view defined in CouchDB:

function(doc) {
  if(doc.date && doc.erc) {
    emit(doc.date, doc.erc);
  }
}

It simply pulls ALL documents and sorts by dates.

I've tried appending

?startkey="2010-05-01"

to the URL and Futon just browser redirects.

I've tried using CURL as well:

curl -X GET http://localhost:5984/plots/_design/by_date/_view/by_date?startkey="2010-05-01"

That throws an error:

{"error":"bad_request","reason":"invalid UTF-8 JSON"}

What am I doing wrong? This should be a VERY basic thing.

Thanks, -Jim

Answer

JasonSmith picture JasonSmith · Mar 17, 2011

CouchDB needs to see the double-quotes.

Bash is probably eating your double quotes before curl runs. Put the URL (double-quotes and all) in single quotes.

curl -X GET 'http://localhost:5984/plots/_design/by_date/_view/by_date?startkey="2010-05-01"'

That way, Bash will send the quotes to curl which will send them to CouchDB.

Possibly Firefox or Futon is eating your quotes too. Futon has a gray pointer icon in the upper-right. That links to the raw URL of the view. Try adding the startkey there. You can also input the double-quotes as %22.