A customer reported me the following issue when they tried to create a new TFS project:
brary!ReportServer_0-43!fbc!03/30/2015-08:44:26:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException: , An error occurred within the report server database. This may be due to a connection failure, timeout or low disk condition within the database.;
library!ReportServer_0-43!fbc!03/30/2015-08:44:26:: e ERROR: Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException: An error occurred within the report server database. This may be due to a connection failure, timeout or low disk condition within the database. ---> System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'xp_sqlagent_notify', database 'mssqlsystemresource', schema 'sys'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteNonQuery()
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.Library.Storage.WrapAndThrowKnownExceptionTypes(Exception e)
at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteNonQuery()
at Microsoft.ReportingServices.Library.SqlAgentScheduler.get_IsSchedulerRunning()
at Microsoft.ReportingServices.Library.SchedulingDBInterface.CheckIfSchedulerIsRunning(Boolean error)
at Microsoft.ReportingServices.Library.SchedulingDBInterface.GetCacheSchedule(Guid reportID, ReportScheduleActions& action)
at Microsoft.ReportingServices.Library.ScheduleCoordinator.SetReportSchedule(Guid reportID, ScheduleDefinitionOrReference scheduleData, ReportScheduleActions reportAction)
at Microsoft.ReportingServices.Library.ReportExecutionCacheDb.SetReportSchedule(Guid reportID, ScheduleDefinitionOrReference scheduleData, ReportScheduleActions reportAction)
at Microsoft.ReportingServices.Library.ReportExecutionCacheDb.SetCacheOptions(CatalogItemPath reportPath, Guid reportID, Boolean cacheReport, ExpirationDefinition expiration)
at Microsoft.ReportingServices.Library.SetCacheOptionsAction.PerformActionNow()
at Microsoft.ReportingServices.Library.RSSoapAction`1.Execute()
I had seen this issue before, but the error message is kind of misleading. To solve it I had to (re)configure the rights of the RSExecRole on the database: