I integrate my application with Slack, in particular interactive messaging. I have enabled interactive messaging and am using ngrok to route the action url to the local development machine.
The Slack channel displays the following:

Pressing the yes button passes the payload to my dev machine (truncated example):
{"payload"=>"{\"actions\":[{\"name\":\"approved\",\"type\":\"button\",\"value\":\"yes\"}]
Slack requires a confirmation of the request within 3000 ms to avoid a timeout. I struggled and now commented on all the controller code to expect head :ok .
def incoming head :ok end
This is displayed in my logs processed by the corresponding route. ngrok shows a response time of less than 1000 ms, but I still get the following in Slack. 
I do not understand why Slack's answer is not accepted. I tried head :ok , head :no_content , render status: 200 .
source share