Stack traces are only included and sent to the client if the request is local (within the same host).
Errors won't be logged to ELMAH because they are not unhandled, so to speak. They are “handled” on the server and transmitted back to the client as the response. What you can do is register your own subclass of JsonRpcDispatcher
and override the OnError
method to then log to ELMAH. I have published a gist
showing your just how to do that. You can download and run the file in LINQPad