Received: The current action cannot be completed because the user data source credentials that are required to execute this report are not stored in the report server database. (rsInvalidDataSourceCredentialSetting)
This occured when using a report with an expression based connect string to connect to sql server.
The report data source is embedded and set to "No Credentials"
It works locally on my Vista machine/IIS 7 but on Windows 2003 R2 IIS 6 it does not.
So as per Microsoft on:
You can configure a data source connection to use no credentials. Microsoft recommends that you always use credentials to access a data sources; using no credentials is not advised. However, you may choose to run a report with no credentials in the following cases:
* The remote data source does not require credentials.
* The credentials are passed in the connection string (recommended only for secure connections).
* The report is a subreport that uses the credentials of the parent report.
Under these conditions, the report server connects to a remote data source using the unattended execution account that you must define in advance. Because the report server does not connect to a remote server using its service credentials, you must specify an account that the report server can use to make the connection. For more information about creating this account, see Configuring the Unattended Execution Account.
So go into the reporting services config tool and set an execution account, this worked for me.