Make sure that the User role has access over the page or the Microflow that this button calls, and in case the button on click action is “Create object” then the user needs to have access to create an object of the selected entity.
you need to check multiple things if you applied the Production security level you need to check the Access rules for an anonymous user and allow him to “create new object” and how you call the page if you call the page “Show page” check the access rules for that page if is it allowing the anonymouse user to see that page or if you calling the same page by Microflow check the access rules for that Microflow.
As others have said, this is almost certainly a security issue. You need to make sure your user has access to the entities, pages, and microflows relating to this functionality.
I’d recommend taking a bit of time and going over this in the Securing Data section of the Crash Course. It covers more than I can in a comment, and should help you get this working.
And if you want the person to upload an image, then make entity File a specialization of Image instead of Filedocument.