         $.Deferred().reject(text)
       else
         data
-    , (_, textStatus, errorThrown) -> 
-      "JSONP unexpected error: #{textStatus} (#{errorThrown})"
+    , (_, textStatus, errorThrown) ->
+      text = "#{textStatus} (#{errorThrown})"
+      ns.warn("JSONP unexpected error: #{text}")
+      text

      else
        fn1 or fn2
    pr.then(
      compose(doneFilter, df.resolve), 
      compose(failFilter, df.reject), 
      compose(progressFilter, df.notify)
    )
    df.promise()

  ns.fullUuidRegex = new RegExp("^#{ns.uuidRegex.source}$", 'i')
  ns.cdnUrlModifiersRegex = /(?:-\/(?:[a-z0-9_,]+\/)+)+/i

  ns.escapeRegExp = (str) ->
    str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")

  ns.normalizeUrl = (url) ->
