In Microsoft Copilot Studio, uploaded files are not automatically passed as raw file bytes when an agent calls a Microsoft Power Automate flow. Instead, the platform passes file references, so the contentBytes field remains null unless developers explicitly construct it. The record object shown in Copilot Studio ({ name, contentBytes }) is only a schema placeholder, meaning automatic mappings like Topic.UserInput → contentBytes will always produce empty files. The supported approach is to capture the file using a File entity with metadata enabled, then manually construct a file payload in Power FX when calling the flow, mapping name and contentBytes from the captured file variable. This constructed object can then be passed to a File input in Power Automate, allowing the flow to correctly receive the file for actions such as saving to OneDrive, processing with AI Builder, or extracting text from PDFs. In short, this behavior is expected platform design, not a configuration issue: Copilot Studio cannot automatically deliver a true File object to flows, so developers must manually build { name, contentBytes } in Power FX to pass usable file data.