Middleware now returns JSON error message