What causes this error when trying to publish my flow? "You should verify that the endpoint is available and that you have implemented a health check before publishing it."
1

I verified my endpoint and it is working fine and I still get this error: You should verify that the endpoint is available and that you have implemented a health check before publishing it.

I found this documentation but it is not clear what I should do, before this endpoint worked for me to publish a flow but now I get that error. https://developers.facebook.com/docs/whatsapp/flows/guides/implementingyourflowendpoint#health_check_request

Johana
تم طرح السؤال منذ حوالي ‏٤‏ أشهر
الإجابة المحددة
1

Hi,

One of the requirements says that you need to upload and sign a public key to a phone number before you can send or publish a Flow with data channel. See details here: https://developers.facebook.com/docs/whatsapp/flows/guides/implementingyourflowendpoint#upload_public_key. Have you done that?

You're saying we published flows in the past using the same endpoint. Are the past flows and the new one in the same WABA?

Thanks, Daniel

‏١٢ يونيو‏‏٦:٢٨ ص‏111
Daniel
Johana

Yes, the past flow and the new one are in the same WABA. But I have the last flow in Obsolete state. Can this affect the publication of my new flow?

‏١٢ يونيو‏‏٦:٥٩ ص‏111
1

The status of a previous flow would not impact publishing of a new one. Just to clarify, "obsolete" means status is DEPRECATED, right?

What about the public key, was this uploaded and is fine?

‏١٢ يونيو‏‏١٠:٣٥ ص‏111
Daniel
Johana

Yes, the public key was loaded correctly and is valid. I don't know what it could be

‏١٢ يونيو‏‏١:٣٦ م‏111
1

Would you be comfortable sharing the flow id, so we can investigate on the actual flow?

‏١٣ يونيو‏‏٢:٠٨ ص‏111
Daniel
Johana

Yes, this is 3724886324423819 I look forward to any response

‏١٣ يونيو‏‏٦:٣٢ ص‏111
1

We see the endpoint configured in the flow is not available.

‏١٣ يونيو‏‏٧:٠٦ ص‏111
Daniel
1

Please note that endpoints should be able to respond to health check requests. WhatsApp will periodically send health check requests to the endpoints used by published flows.

Sample Health Check Request Payload

{
    "version": "3.0",
    "action": "ping",
    "data": {}
}

You should generate the following response payload:

{
    "version": "3.0",
    "data": {
        "status": "active"
    }
}

For reference, please use this: https://developers.facebook.com/docs/whatsapp/flows/reference/implementingyourflowendpoint#health_check_request

‏١٣ يونيو‏‏٧:٠٩ ص‏111
Daniel
Johana

That is, should I execute a POST with my URL and this in the body?

{
    "version": "3.0",
    "action": "ping",
    "data": {}
}
‏١٣ يونيو‏‏٩:١٣ ص‏111
Daniel

yes, please, you need to make sure your endpoint is up all the time and also responds to ping as detailed above

‏١٤ يونيو‏‏١:٥٣ م‏111
Johana

Yes, the endpoint works but it still doesn't verify me. Please help

‏١٨ يونيو‏‏٧:٢٥ م‏111
Daniel

When I try to ping your endpoint in curl I get errors:

[status] => "failed"
[error] => "Curl failed with error code 56 (RECV_ERROR)"
[error_type] => "no_http_response"
‏٢٠ يونيو‏‏٦:٥٦ ص‏111
Johana

How do you execute it? If it answers me with http code 200. This is my curl:

curl --location 'https://lia-qa.fif.tech/webhook-stg/dataflows/seguros_co/stg' \
--header 'Content-Type: application/json' \
--header 'Cookie: __cf_bm=CAhtki_FEWNct_I2z.8.OEfLBashEfHhI0c2ntNA1Tw-1718891939-1.0.1.1-XmyrIkba0ieCjGsXznxne92uNMXLiD2dkZtFibax0ZqizYhYi6qWlHp7tfpuzgCLj6CBEgKGLucWWABi3Ds8x0EYkvixr9pVVooWrUk9kbE' \
--data '{
    "version": "3.0",
    "action": "ping",
    "data": {}
}'
‏٢٠ يونيو‏‏٥:١٢ م‏111
Johana

You can try to run the endpoint several times? as it is a test environment (qa), our endpoint is not exposed to the internet, however we have applied a rule to allow the ASN of Meta 32934 to reach our service

‏٢٠ يونيو‏‏٥:١٣ م‏111
Daniel

First, I note that you amended the endpoint used by the flow. Second, the new endpoint behaves the same as the old one: still we don't get a response for ping. You're saying your endpoint is not exposed to the internet... maybe that shouldn't be the case?

‏٢١ يونيو‏‏٥:١٨ ص‏111
Johana

Yes, it is not exposed to the internet but as I said, it is exposed to the internet for Meta's ASN 32934. That is to say that if you are doing the ping from a Meta machine with that ASN 32934 it should work for you.

‏٢١ يونيو‏‏٩:١١ ص‏111
Johana

Can you send me your request?

‏٢١ يونيو‏‏٩:١٣ ص‏111
Daniel

Is it possible to please provide a link to documentation where there is a recommendation to limit endpoints access to ASN 32934?

‏٢٢ يونيو‏‏٣:١٥ م‏111
Daniel

Additionally, note that the endpoint is supposed to serve the users of that flow. They won't be coming from ASN 32934.

We now know technically why the flow can't be published. Please amend your local settings so endpoint is reachable.

Please confirm if this thread can be closed.

‏٢٢ يونيو‏‏٣:٢٠ م‏111