While this is getting addressed in-product, there is a workaround you can explore @Chloe_lepez, @365xMVP.
It's rebuilding the response and citations in an adaptive card format.
Here's how you can do it, assuming you use generative answers in the Conversational boosting system topic.
For that, the first thing you need to do is:
- Disabling the "Send a message" options in the "create generative answer node" properties.
- Set the "Save GPT response" as "Complete (recommended)"
What this changes is getting the generated answer text as well as all the citations in the Topic.Answer variable (that becomes a Record variable instead of a String).

Then, add a new message node after the "create generative answer" node, and add an "adaptive card" to it.
Change the format from JSON to Formula and paste the below Power Fx formula:

{
type: "AdaptiveCard",
'$schema': "http://adaptivecards.io/schemas/adaptive-card.json",
version: "1.5",
body: [
{
type: "Container",
items: [
{
type: "TextBlock",
text: Topic.Answer.Text.Content,
wrap: true
}
]
},
{
type: "Container",
items: ForAll(Topic.Answer.Text.CitationSources,
{
type: "TextBlock",
text: "[" & Id &"]: [" & Name & "](" & Url & ")",
wrap: true,
size: "Small",
weight: "Lighter"
}
)
},
{
type: "Container",
items: [
{
type: "ColumnSet",
columns: [
{
type: "Column",
width: "90",
items: [
{
type: "TextBlock",
text: "AI-generated answer.",
wrap: true,
size: "Small",
color: "Accent"
}
]
}
]
}
]
}
]
}
The last thing you want to do is to update the condition to catch blank answers.
Otherwise, blank answers are not exactly outputting as a blank record, but {}.
Instead of the Topic.Answer variable, change it to the Topic.Answer.Text one:

This is the end-result in Copilot Studio:

And this is what the same looks like in Teams:
