0

According to Slack's documentation, you can use blocks to update an entire ephemeral message by simply replacing the entire message by setting replace_original as true when posting to the response_url provided in the interaction payload when using buttons.

However, when I'm sending the POST request to the provided response_url after a button has been pressed and I attempt to use blocks, I get the following error: 404 : [{"ok":false,"error":"invalid_blocks"}]

Strangely enough, the payload I'm including for blocks is generated by the same method that creates the original ephemeral message which works fine without any issues.

I was able to replace the entire message with just a plain text message by using the text field indicated in the documentation and it works fine if I don't include the blocks array. I did find some documentation here for posting messages via incoming webhooks here but it looks the same as what I'm sending now.

Here's the body of the request I'm sending:

{
"blocks":
[
    {
        "type": "image",
        "imageUrl": "https://example.com/image.jpeg",
        "altText": "alt-text",
        "title":
        {
            "type": "plain_text",
            "text": "some text"
        }
    },
    {
        "type": "actions",
        "elements":
        [
            {
                "type": "button",
                "text":
                {
                    "type": "plain_text",
                    "text": "Send",
                    "emoji": false
                },
                "value": "send",
                "style": "primary"
            },
            {
                "type": "button",
                "text":
                {
                    "type": "plain_text",
                    "text": "Find new",
                    "emoji": false
                },
                "value": "some text"
            },
            {
                "type": "button",
                "text":
                {
                    "type": "plain_text",
                    "text": "Cancel",
                    "emoji": false
                },
                "value": "cancel"
            }
        ]
    }
],
"replace_original": "true",
"text": "some fallback text"
}

1 Answer 1

2

You have two typos in your blocks: imageUrl and altText. Slack expects these to be snake case, i.e. image_url and alt_text.

You can use Slack's Block Kit Builder to debug the blocks payload.

Sign up to request clarification or add additional context in comments.

1 Comment

Damn, thanks. I was using the Java Slack API to post the first message but in the manual POST request Jackson was serializing it to camelcase by default... All works after a naming strategy change!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.