Share via

Adaptive Card doesn't render TableCell Element containing a RichTextBlock

AdaptiveCard_Mess 0 Reputation points
2026-02-26T16:02:07.6766667+00:00

I have an Adaptive Card Workflow that sends a Card via Webhook URL into a Teams Chat.
Since a few days this card doesn't get rendered properly anymore.

The "right" column of my table is not shown anymore.

{
    
    
    
    
        {
            
            
            
            
            
                {
                    
                    
                    
                }
            ]
        }
    ]
}
Microsoft Teams | Microsoft Teams for business | Chats | Group chats
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Kai-L 11,330 Reputation points Microsoft External Staff Moderator
    2026-02-26T17:09:12.68+00:00

    Dear @AdaptiveCard_Mess,

    Thank you for reaching out to Microsoft Q&A forum

    I understand that you're experiencing an unexpected issue where an adaptive card containing a TableCell element with a RichTextBlock does not render correctly in Microsoft Teams. Based on my research, since this workflow was working previously and has only started failing recently, it appears there may be a rendering regression in the Microsoft Teams client that is affecting Adaptive Cards. This means that while your JSON payload remains valid, recent updates to the Teams "renderer" have caused issues with displaying RichTextBlock when nested inside a TableCell.

    As a forum moderator, I genuinely wish I could directly access your account or delve into the backend systems to diagnose and fix this for you. However, our role here is limited to providing general guidance and solutions that can be applied by users.  

    For problems of this nature, I recommend that the Global Admin in your organization create a service request with Microsoft Support. A technical support engineer can perform a remote session to investigate the situation, verify the backend configurations, and run any necessary synchronization tools to resolve the problem. If the issue requires further attention, they can escalate it to a specialized team for deeper analysis. Ask The Global Admin in your organization to create a service request with Microsoft support to get advanced technical assistance and diagnostics. For detailed instructions on how to get support, please refer to Get support - Microsoft 365 admin. If you don't know who your IT administrator is, please refer to this article: How do I find my Microsoft 365 admin? - Microsoft Support 

    For additional assistance, use this link to find the appropriate contact number from your region: Global Customer Service phone numbers - Microsoft Support 

    I truly hope you get your issue resolved swiftly. Please know that even though I can't directly intervene, directing you to the correct, specialized support is the most effective help I can provide from my position. Thank you for your patience and understanding. Please don’t hesitate to reach out if you need further assistance. Wishing you all the best in resolving this issue!


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".  

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 

    0 comments No comments

  2. Q&A Assist
    2026-02-26T16:02:26.44+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    In Adaptive Cards, RichTextBlock is not rendered in all hosts and has specific limitations that can cause exactly this kind of issue when used inside a TableCell.

    Key points from the schema and renderer behavior relevant to this scenario:

    1. TableCell.items must contain only supported element types TableCell.items allows these element types:
      • ActionSet, ColumnSet, Container, FactSet, Image, ImageSet, Input.ChoiceSet, Input.Date, Input.Number, Input.Text, Input.Time, Input.Toggle, Media, RichTextBlock, Table, TextBlock. If the payload contains an element type that the host (Teams) does not support, the renderer must ignore that element and continue rendering the rest of the payload. This can make a whole cell appear “empty” even though the JSON is valid.
    2. RichTextBlock support is host-dependent While RichTextBlock is part of the schema, not every host or platform version supports it. When a host does not support RichTextBlock, the renderer must ignore that element. If the right column’s TableCell.items contains only a RichTextBlock, the entire cell will appear blank.
    3. Markdown vs. RichTextBlock
      • TextBlock supports a subset of Markdown and is the recommended way to format text in most hosts.
      • RichTextBlock does not support Markdown and must be styled via its own properties. If the right column was recently changed from TextBlock (with Markdown) to RichTextBlock, or Teams updated its Adaptive Card host version/behavior, this could explain why it suddenly stopped rendering.
    4. Required properties on TableCell TableCell.items is required. If the RichTextBlock is the only item and is ignored by the host, the cell effectively has no renderable items, so the column appears missing.

    Practical remediation steps:

    1. Replace RichTextBlock with TextBlock in the TableCell that is not rendering, and use Markdown for formatting where needed.
    2. Validate the card JSON in the Adaptive Cards Designer / Card Payload Editor to ensure the payload is valid and see how it renders in a generic host.
    3. Ensure the card’s declared schema version and the Teams host version align with the features being used (e.g., Table and TableCell require schema 1.5; RichTextBlock support may vary by host implementation).

    If, after replacing RichTextBlock with TextBlock, the right column renders again, the issue is due to host support for RichTextBlock inside TableCell in Teams.


    References:

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.