couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Newson (JIRA)" <>
Subject [jira] [Commented] (COUCHDB-1511) Error message provides no help: Uncaught server error: {case_clause,{[]}}
Date Sun, 08 Jul 2012 18:09:34 GMT


Robert Newson commented on COUCHDB-1511:

The reason for the error is that, while we test that newDoc.roles is an array if it's defined,
we don't define it if it's absent and we then proceed to call newDoc.roles.length. The exception
thrown here is not anticipated in the ddoc_prompt result, and we get a function_clause (which,
as noted, is impenetrable to users).

The fix for couch_db_functions.hrl is something like this;

--- a/src/couchdb/couch_js_functions.hrl
+++ b/src/couchdb/couch_js_functions.hrl
@@ -31,8 +31,12 @@
             throw({forbidden: ' is required'});
-        if (newDoc.roles && !isArray(newDoc.roles)) {
-            throw({forbidden: 'doc.roles must be an array'});
+        if (newDoc.roles) {
+            if (!isArray(newDoc.roles)) {
+              throw({forbidden: 'doc.roles must be an array'});
+            }
+        } else {
+            newDoc.roles = []
and the fix for couch_query_servers will be to add something like;

_ ->
  throw({bad_request, "blah"})

> Error message provides no help: Uncaught server error: {case_clause,{[]}}
> -------------------------------------------------------------------------
>                 Key: COUCHDB-1511
>                 URL:
>             Project: CouchDB
>          Issue Type: Bug
>    Affects Versions: 1.2
>            Reporter: Isaac Z. Schlueter
> When PUTing a _users doc, if you forget the `roles:[]` field, you get this error, which
doesn't help figure out the problem at all.
> Suggestion:
> 1. _users docs should get a role:[] and type:"user" by default if these fields are missing.
> 2. If there is an error in the _users doc, it should say "Invalid user document", or
something else indicating that the problem happened because the data was bad (and not, say,
because the server is crashing or views are messed up, or whatever else can happen in this
crazy world.)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message