> On Jan 15, 2015, at 3:11 AM, Andrew Tokarev <[email protected]> wrote:
> 
> I recently found out that custom doc_id is not validated on iOS/Android 
> (might be true for other platforms). 
> So it is possible to pass something like: "£%&-7", which causes exception on 
> SyncGateway (no crash). 

That is a valid document ID.

> ---- Sync gateway (1.0.0) confused with some doc ids:
> ----
> 15:19:44.729250 CRUD+: Invoking sync on doc "£%&-7" rev 
> 2-d36047fd7682b8f3255a0652ba510790
> 15:19:44.729562 CRUD+: No old revision "£%&-7" / 
> "1-691feb51f7ea0da0c8e56132396a0451"
> 15:19:44.729856 WARNING: Sync fn exception: 400 Illegal channel name 
> "person-£%&-7"; doc = map[_id:£%&-7 type:Person 
> _revisions:map[start:%!s(float64=2) ids:[d36047fd7682b8f3255a0652ba510790 
> 691feb51f7ea0da0c8e56132396a0451]] _rev:2-d36047fd7682b8f3255a0652ba510790] 
> -- db.(*Database).getChannelsAndAccess() at crud.go:686

…but that same string is an illegal channel ID. Doc and channel IDs are not the 
same thing. It can be convenient to name a channel after a document, but if you 
do that you need to ensure [on the client] that the document is given an ID 
that's a valid channel ID. Or your sync function could escape characters in the 
doc ID to make it a valid channel ID.

—Jens

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/F67EC8C0-76B9-4E62-B0EC-7C3BEDCA2687%40couchbase.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to