503 Service unavailable received when calling a service in cloud

Not applicable

testcloudconnectivity-rev1-2016-07-05.zipHi,

I tried to invoke a service hosted in an open cloud application through APIGEE Edge on cloud. I'm getting the following error:

HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Server: Apigee Router
Content-Length: 139
Age: 0
Via: HTTPS/1.1 CTSINBLRVWCG16

{"fault":{"faultstring":"The Service is temporarily unavailable","detail":{"errorcode":"messaging.adaptors.http.flow.ServiceUnavailable"}}}

But I am able to call the same URL using browser from internet. Attaching the API bundle.

Can anyone suggest why I'm not able to invoke the service which is in open cloud through APIGEE on cloud?

Solved Solved
1 4 6,396
1 ACCEPTED SOLUTION

Dear @J.Joseph,

1. I tested your API proxy locally in my org and was able to reproduce the problem (503 Error). The cause for 503 Error was due to SSL handshake failure between Edge and your backend server

Received fatal alert: handshake_failure

2. I took a TCPdump and noticed that the Edge is using TLSv1.0 protocol (by default), while your backend server seems to support only TLSv1.2. Hence, the handshake failure is seen.

3. You need to add the following SSLInfo element (as shown below) to allow Edge also to use TLSv1.2 protocol while communicating with your backend server in the Target Endpoint

<HTTPTargetConnection>
    <URL>https://yourbackendserver.com</URL>
    <SSLInfo>
    <Enabled>true</Enabled>
        <Protocols>
            <Protocol>TLSv1.2</Protocol>
        </Protocols>
    </SSLInfo>
</HTTPTargetConnection>

4. I added this SSLInfo element and was able to get 200 successful response.

5. This is good for one way SSL.

6. If you want to use 2 way SSL in future, you need to add certificates to Keystore. Please read more details about this here

Regards,

Amar

View solution in original post

4 REPLIES 4

@J.Joseph , It's an SNI issue. See similar question asked here.

Dear @J.Joseph,

1. I tested your API proxy locally in my org and was able to reproduce the problem (503 Error). The cause for 503 Error was due to SSL handshake failure between Edge and your backend server

Received fatal alert: handshake_failure

2. I took a TCPdump and noticed that the Edge is using TLSv1.0 protocol (by default), while your backend server seems to support only TLSv1.2. Hence, the handshake failure is seen.

3. You need to add the following SSLInfo element (as shown below) to allow Edge also to use TLSv1.2 protocol while communicating with your backend server in the Target Endpoint

<HTTPTargetConnection>
    <URL>https://yourbackendserver.com</URL>
    <SSLInfo>
    <Enabled>true</Enabled>
        <Protocols>
            <Protocol>TLSv1.2</Protocol>
        </Protocols>
    </SSLInfo>
</HTTPTargetConnection>

4. I added this SSLInfo element and was able to get 200 successful response.

5. This is good for one way SSL.

6. If you want to use 2 way SSL in future, you need to add certificates to Keystore. Please read more details about this here

Regards,

Amar

@AMAR DEVEGOWDA

Thanks a lot!! ..it is working for me when I added <SSLInfo/> part in the code.

when Iam trying to call a backend server url installed on my local machine through apigee proxy I get this error. If I call backend url its working fine. Backend is a Httpurl. Proxy is a Https url

 

{"fault":{"faultstring":"The Service is temporarily unavailable","detail":{"errorcode":"messaging.adaptors.http.flow.ServiceUnavailable"}}}* Connection #0 to host 34.149.255.27.nip.io left intactC:\Users\sande\AppData\Local\Google\Cloud SDK>curl -v -k https://34.149.255.27.nip.io/webmethodsreverse_proxy