Most likely, your resource is missing a declaration for acceptable media types.
Make sure your resource has something like:
(defresource my-resource
:available-media-types ["text/html"])
If you are sending a request with an Accept header of "application/json", then you will want to add that media type to the :available-media-types vector
(defresource my-resource
:available-media-types ["text/html" "application/json"])
If that doesn't get you out of your bind, then please reply with the full definition of your resource and we can check it out.
If you poke around in the source code, specifically src/liberator/core.clj, you will see other places where the 406 can be returned as a response, see the places where handle-not-acceptable is used as the result of a decision. There are tests for media type, encoding, charset, language, for example, that could result in a 406 not acceptable response.
Good luck!