diff --git a/trunk/src/app/srs_app_rtc_api.cpp b/trunk/src/app/srs_app_rtc_api.cpp index 985c41af7..fc762b108 100644 --- a/trunk/src/app/srs_app_rtc_api.cpp +++ b/trunk/src/app/srs_app_rtc_api.cpp @@ -643,7 +643,13 @@ srs_error_t SrsGoApiRtcWhip::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessa SrsRtcUserConfig ruc; if ((err = do_serve_http(w, r, &ruc)) != srs_success) { - return srs_error_wrap(err, "serve"); + if (srs_error_code(err) == ERROR_RTC_SDP_EXCHANGE) { + srs_warn("RTC error %s", srs_error_desc(err).c_str()); + srs_freep(err); + return srs_api_response_code(w, r, SRS_CONSTS_HTTP_BadRequest); + } else { + return srs_error_wrap(err, "serve"); + } } if (ruc.local_sdp_str_.empty()) { return srs_go_http_error(w, SRS_CONSTS_HTTP_InternalServerError); diff --git a/trunk/src/protocol/srs_protocol_http_stack.cpp b/trunk/src/protocol/srs_protocol_http_stack.cpp index d6c2d2907..29749d48e 100644 --- a/trunk/src/protocol/srs_protocol_http_stack.cpp +++ b/trunk/src/protocol/srs_protocol_http_stack.cpp @@ -790,7 +790,9 @@ srs_error_t SrsHttpServeMux::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessa srs_assert(h); if ((err = h->serve_http(w, r)) != srs_success) { - return srs_error_wrap(err, "serve http"); + srs_error("serve_http %s", srs_error_desc(err).c_str()); + srs_freep(err); + return srs_go_http_error(w, SRS_CONSTS_HTTP_InternalServerError); } return err;