error_info({Error, Reason}) when is_list(Reason) ->
error_info({Error, ?l2b(Reason)});
This clause assumes, erroneously, that a list is really a string and
so converts it to a binary. In this case, the list contains objects.
B.
On 3 January 2013 10:24, Robert Newson <[email protected]> wrote:
> I can easily believe our error handling code assumes a string for the
> error value. File a JIRA ticket?
>
> On 3 January 2013 00:21, Travis Paul <[email protected]> wrote:
>> In one of my validate_doc_update functions I try to throw an array of
>> errors like so:
>>
>> if (report.errors.length) {
>> throw({forbidden: report.errors});
>> }
>>
>> and couchdb crashes (but recovers of course)
>>
>> If I stringify the errors array, it works fine...
>>
>> if (report.errors.length) {
>> throw({forbidden: JSON.stringify(report.errors)});
>> }
>>
>> report.errors looks like: http://pastebin.com/JzqtvUSd
>> and the crash report: http://pastebin.com/Wp679hux
>>
>> I'm running couchdb 1.0.3 and I was using Futon to save the document and
>> erica to push the couchapp. I am using JSV to get the errors array.
>>
>> I would be happy to put my couchapp somewhere (github) if it will help find
>> the cause. I am just trying to use json-schema in a demo couchapp.
>>
>> Any insight would be appreciated.