Cloud SSRS reports failing since the upgrade on Monday

Right, that’s what I understood too, not SaaS, but PaaS.

Tried that, still fails. Stock status is not based on baqs.

No, I know, but it’s a query, right?

I just didn’t know if you need to edit the RDL query or add (unhide) a column to the RDD or where exactly it’s failing.

Just hoping for a lifeline for some other person who is not going to make their own stock status BAQ.

But, for anyone else reading this - just make your own stock status BAQ. It will always be better anyway.

I already made my own. But that isn’t the point. The point is Epicor is selling a supposedly full-featured ERP solution for manufacturing companies. A stock status report is fundamental, not a nice to have.

Alisa is fundamentally right in this.

Why?

The customer is always right.

It’s not up to the customer to have to balance resources “correctly”, or write reports “correctly”, it’s up to the customer to run their own business. They have contracted with a company to use a product to help them do that. I am already managing my business; I don’t need to have to manage the software I contracted with in order to run my business as well. That detracts from running my business, and it costs me more money.

I have many internal “customers” I serve in the company I work for (I’m IT, and I consider myself a servant to my users, not the other way around). My “customers” are not technically savvy, for the most part, but it’s not my place to tell them they’re not doing it right, or they need to learn how to manage it better; it’s my place to help them accomplish the business purpose they’re trying to accomplish, to achieve the business goal we’re all as a company trying to accomplish. End of story.

End of story.

I eat a lot of garbage because of the improper ways that they do things. But that’s my job; to provide a seamless experience to them no matter how they go about doing things.

Epicor doesn’t have the server resources available to balance the loads their customers are placing on the system; that’s Epicor’s problem to solve, not mine to work around. For them to tell a customer that “it’s a difficult thing to hear, but you’re not using it right, I’m not going to fix it, and you’ll have to eat the garbage, not us” is insane. You can argue who’s right and who’s wrong all day long, but at the end of the day it doesn’t matter; the customer is always right.

For whatever else anyone may think of them, this is one thing that Microsoft always understood. When third parties would write software that didn’t run properly on Windows, Microsoft shimmed Windows so that the program would run. Why? Because it didn’t matter who was right and who was wrong; they understood that the consumer would blame them, and so they just fixed it. They ate the garbage.

I have an on-prem install of Epicor, and I’m in active support on 2024.1. A recent update broke the context menus; they no longer appear when you right-click in a field. This broke a basic workflow for people. And Epicor told me that it’s fixed in a later version, they’re not going to fix it in mine. I am in active support, I am literally paying them to fix things, even more so functionality they broke, and it’s “too bad, so sad”. Someone in Epicor told me that they don’t think it’s right the attitude that Epicor is taking, and then said, “I guess that’s why I’m not running things here.”

Epicor doesn’t have the resources (infrastructure) necessary to handle the load their customers are placing on the system; Epicor’s job is not to tell their customers they’re not using it right, their job is to provide the resources necessary to the seamless operation for their customers, no matter how they use it.

Or they no longer will.

Just to reiterate from many years of stock status struggles (On Prem), I don’t think this is simply a server resource issue… If you can somehow get someone from the Cloud ops team to really dive into parameter sniffing you might have a fighting chance.

In my dev environment I can dial resources way down to 8 cores 8gb of ram and get stock status to run in 20 minutes for our largest site. In Prod (with same data) I can throw 32 cores 128gb ram at it and it will time out after 12 hours if there is a bad query execution plan in play.

Open to suggestions . . .

No idea lol, I imagine it’s like talking to a brick wall. I’m curious, do they give you any insight at all into what kind of DB maintenance is done by them? Indexes, statistics, DB integrity check jobs, etc?

Nope.

But the issue clearly isnt the database, or else it would fail in pilot too.

If it’s a bad execution plan it won’t pass to pilot upon restore and the consequences of a similarly bad plan on pilot won’t cause the same resource starvation/timeout because overall load is lower on pilot.

I wonder whether someone on-prem can share the exact query text and you could exec OPTION (RECOMPILE) through a BAQ. :man_shrugging:

Curious if you’ve tried the suggestion to run max 10 warehouses or whatever they told you. I agree it’s dumb but at least If that workaround doesn’t work then you can put it back on them for whatever that’s worth.

The report isn’t based on a baq, its a black box rdd so there is no way to recompile it. It will run for one warehouse but there are 30 warehouses and running the report 30 times is absurd. Plus that doesnt give you to totals that auditors require.

Its not a load issue. At 6am on January 1st, it still would not run, and I promise you the load on production was close to zero at that time with everyone closed for the holiday.

Now the low disk issue is definitely due to load, haven’t seen it once over the holiday period and fully expect it to return Monday morning.

As expected the low disk errors are back this week. And got a new error trying to run stock status. I guess it is a new year so time for a new error.

Program Ice.Services.Lib.RunTask when executing task 1480318 raised an unexpected exception with the following message: RunTask:
System.InvalidOperationException: Invalid attempt to call IsDBNull when reader is closed.
at Microsoft.Data.SqlClient.SqlDataReader.CheckHeaderIsReady(Int32 columnIndex, Boolean permitAsync, String methodName)
at Microsoft.Data.SqlClient.SqlDataReader.IsDBNull(Int32 i)
at lambda_method1887866(Closure, Shaper)
at System.Data.Entity.Core.Common.Internal.Materialization.Coordinator1.ReadNextElement(Shaper shaper) at System.Data.Entity.Core.Common.Internal.Materialization.Shaper1.SimpleEnumerator.MoveNext()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
at Erp.Internal.IM.IMR40.BuildReport() in C:_releases\ERP\ERP12.0.100.12\Source\Server\Internal\IM\IMR40\IMR40.cs:line 1901
at Erp.Internal.IM.IMR40.InternalRunProcess() in C:_releases\ERP\ERP12.0.100.12\Source\Server\Internal\IM\IMR40\IMR40.cs:line 1509
at Erp.Internal.IM.IMR40.RunProcess(Int64 instanceTaskNum, String outputFileName) in C:_releases\ERP\ERP12.0.100.12\Source\Server\Internal\IM\IMR40\IMR40.cs:line 1411
at Ice.Hosting.TaskCaller.InnerExecuteTask(IceDataContext newContext) in C:_releases\ICE\ICE5.0.100.12\Source\Server\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 70
at Ice.Hosting.TaskCaller.ExecuteTask() in C:_releases\ICE\ICE5.0.100.12\Source\Server\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 61
at Ice.Lib.RunTask.BpmFriendlyTaskLauncher.Run(String sessionIdPrefix, IceContext db, Action taskRunner) in C:_releases\ICE\ICE5.0.100.12\Source\Server\Services\Lib\RunTask\BpmFriendlyTaskLauncher.cs:line 57
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in C:_releases\ICE\ICE5.0.100.12\Source\Server\Services\Lib\RunTask\RunTask.cs:line 411

I was also getting a low disk error on the Menu Security Audit Report yesterday. To be fair I was pulling a large report

Already posted this in another thread but we got bit by the SSRS bug at monthend on a scheduled report - the stock status report no less. So we had to fall back on our bandaids-and-bubblegum Access/ODBC inventory capture…and now I’ll be running them manually at monthend to insure they complete because we can’t trust the server to run them overnight successfully. Good times.

Error text - had to replace the ` with a # because it wouldn't post cleanly here

Program Ice.Services.Lib.RunTask when executing task 2703770 raised an unexpected exception with the following message: RunTask:
Ice.Core.SsrsReporting.SsrsCaller.SsrsException
at Ice.Core.SsrsReporting.SsrsCaller.RestReportingService.ThrowIfNotSuccess(HttpResponseMessage responseMessage) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsCaller\RestReportingService.cs:line 351
at Ice.Core.SsrsReporting.SsrsCaller.RestReportingService.ListChildren(String itemPath, Boolean recursive) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\SsrsCaller\RestReportingService.cs:line 225
at Ice.Core.SsrsReporting.ReportProcessorBase.IsLatestVersionDeployed(IReportingService reportingService, String itemPath, String contentHashForLatestVersion) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 368
at Ice.Core.SsrsReporting.ReportProcessorBase.DeployReportIfNeeded(String printProgram, String fullReportPath, SsrsConfigurationInformation configurationInfo, Func#1 reportingServiceCreator) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 458
at Ice.Core.SsrsReporting.ReportProcessorBase.RenderReport_HttpClient(String ssrsRenderFormat, String printProgram, Boolean ignorePageSettings) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 335
at Ice.Core.SsrsReporting.ReportProcessorBase.RenderReport(String ssrsRenderFormat, String printProgram, Boolean ignorePageSettings) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 242
at Ice.Core.SsrsReporting.ReportProcessorBase.RenderReportForPrintOrEmailReport(RenderedSsrsReport renderedReport, Boolean serverSidePrint, Boolean ignorePageSettings) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 685
at Ice.Core.SsrsReporting.ReportProcessorBase.ProcessReportPart(String reportLocation) in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 149
at Ice.Core.SsrsReporting.StandardReportProcessor.ProcessReportParts() in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\SsrsReporting\StandardReportProcessor.cs:line 31
at Ice.Core.RoutingAndBreaking.ReportPersister.Persist(ReportInstanceInformation reportInstance, Func#2 reportsRenderer, Action#1 fillSysRptLstRow, Action#2 processReport, Func#3 filterTableAttachmentsFunc)
at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.RenderUnroutedSsrsReport() in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 355
at Ice.Core.RptTaskBase#1.XMLClose() in F:_Releases\12.0.100\Current\Source\Server\Internal\Lib\TaskLib\RptBase\RptTaskBase.cs:line 219
at Erp.Internal.IM.IMR40.XMLClose() in C:_releases\ERP\ERP12.0.100.11\Source\Server\Internal\IM\IMR40\IMR40.cs:line 1256
at Erp.Internal.IM.IMR40.PrintReport() in C:_releases\ERP\ERP12.0.100.11\Source\Server\Internal\IM\IMR40\IMR40.cs:line 3239
at Erp.Internal.IM.IMR40.InternalRunProcess() in C:_releases\ERP\ERP12.0.100.11\Source\Server\Internal\IM\IMR40\IMR40.cs:line 1534
at Erp.Internal.IM.IMR40.RunProcess(Int64 instanceTaskNum, String outputFileName) in C:_releases\ERP\ERP12.0.100.11\Source\Server\Internal\IM\IMR40\IMR40.cs:line 1411
at Ice.Hosting.TaskCaller.InnerExecuteTask(IceDataContext newContext) in C:_releases\ICE\ICE5.0.100.11\Source\Server\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 70
at Ice.Hosting.TaskCaller.ExecuteTask() in C:_releases\ICE\ICE5.0.100.11\Source\Server\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 61
at Ice.Lib.RunTask.BpmFriendlyTaskLauncher.Run(String sessionIdPrefix, IceContext db, Action taskRunner) in C:_releases\ICE\ICE5.0.100.11\Source\Server\Services\Lib\RunTask\BpmFriendlyTaskLauncher.cs:line 57
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in C:_releases\ICE\ICE5.0.100.11\Source\Server\Services\Lib\RunTask\RunTask.cs:line 411

So, after begging and begging and begging support actually performed some troubleshooting activities on this yesterday, and found that our query store was in an error state. I am now assigned to run the stock status report 10 times to try to rebuild the query store and maybe execute the report successfully. On attempt 3 of ??? at the moment . . .

You’ve only been begging for weeks for support to actually look into this.

Best Wishes Good Luck GIF by Zypto