Suddenly, PRINTER_DOESNT_EXIST

Hello all,

Hoping someone can assist us (Epicor have said the issue is with us…)

Since 2 days ago, we are getting intermittent errors when printing, 80% of prints are failing, however, all previews are OK.

Regardless of initiating via Report Routing / Directive printing, they nearly all fail.

APR Error

An error occurred while performing print routing action Server Print:
The report could not be printed because of the following reason:
PRINTER_DOESNT_EXIST

We have tried the following:

  • Different Users initiating report/print.
  • Different Reports.
  • Different Printers.
  • Removing/Recreating Printers in Epicor.
  • Removing/Recreating Printers on the Server.
  • Restarted App Pool.
  • Restarted App Server.
  • Restarted SQL Server Reporting Service.
  • Restarted SQL Server.

There is plenty of space on the servers, backups are working fine, memory is not an issue. We have made no changes to these servers or our network infrastructure in many weeks.

Last night, every server on our network was updated and rebooted. The issue persists today.

For context; we do not use the Advanced Print Routing module. We are using standard SSRS and Report Style Breaking & Routing. Printers are directly installed on the Epicor App server itself, so we are not using a print server as such. However, we have also tried this…

We are currently at a loss.

Please help!

1 Like

Antony, have you tried to create a new breaking and routing style just to see if anything works?

you didn’t mention that in the “things you’ve tried.” Maybe it’s something corrupted in the report routings that you had set up.

Antony, are you printing with Kinetic screens or classic screens and did you just update to 2023.1.9 or higher?

Call support and reference this problem number and ask them if there is a workaround or something: PRB0271497

I thought APR is exactly report style breaking and routing…

What is the full error with stack?

1 Like

So, yes, I forgot to mention the version number!

We are still on 10.2.300.41 (Kinetic is being tested on another server).
We have made no updates/changes to the App Server or SQL Server.

Currently, we have just created the Live environment on our Pilot server and it seems to be behaving - suggesting something is amiss with our Live Server.

This is not ideal, as ALL shares/printers/services/certificates etc. would need to be moved too… The best solution for us is to find the cause of the issue.

We didn’t try a new B&R style, as, because it works 20% of the time, surely it must be ok… and this issue has suddenly affected a dozen plus reports.

I may have been mistaken about my understanding of APR and B&R, but, as for the error with full stack, please advise best way to get this, as all we can see is the error in System Monitor history (detailed above).

Thanks for the help so far.

1 Like

is anything in server event viewer?

I would also do as Uta suggested:

create a new breaking and routing style just to see if anything works?

One new simple routing that will go directly to the printer.

1 Like

Nothing at all,

Interesting, we’ve just been informed of another of our users having this issue, this time against a non B&R initiated report, printed with standard print dialog to a Server Printer.

Here is the full error from System Monitor:

Program Ice.Services.Lib.RunTask raised an unexpected exception with the following message: RunTask: The report could not be printed because of the following reason:
PRINTER_DOESNT_EXIST
Stack Trace:
   at Ice.Core.SsrsReporting.PdfReportPrinter.Print(Byte[] reportBytes, String printerNameParameter, String reportDescription, EpiPrinterSettings printerSettings, EpiPageSettings pageSettings) in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\SsrsReporting\PdfReportPrinter.cs:line 39
   at Ice.Core.SsrsReporting.ReportProcessorBase.RenderReportForPrintOrEmailReport(RenderedSsrsReport renderedReport, Boolean serverSidePrint, Boolean ignorePageSettings) in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 359
   at Ice.Core.SsrsReporting.ReportProcessorBase.ProcessReportPart(String reportLocation) in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\SsrsReporting\ReportProcessorBase.cs:line 158
   at Ice.Core.SsrsReporting.StandardReportProcessor.ProcessReportParts() in C:\_Releases\ICE\ICE3.2.300.41\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) in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\ReportPersister.cs:line 57
   at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.RenderUnroutedSsrsReport() in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 303
   at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.RunSsrsReportIfEnabled() in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 228
   at Ice.Core.RptBase.ReportSsrsDatabaseBuilder.ProcessReportWithDataInPlace(Func`2 executeCommand, Func`2 executeReader, SqlObjectsCreated sqlObjectsCreated) in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 111
   at Ice.Core.RptBase.ReportDatabaseBuilder.XMLClose() in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\RptBase\ReportDatabaseBuilder.cs:line 93
   at Ice.Core.RptTaskBase`1.XMLClose() in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\RptBase\RptTaskBase.cs:line 216
   at Erp.Internal.JC.JobTrav.RunProcess(Int64 instanceTaskNum, String outputFileName) in C:\_projects\ERP\RL10.2.300.0\Source\Server\Internal\JC\JobTrav\JobTrav.cs:line 688
   at Ice.Core.TaskBase`1.StartProcess(Int64 instanceTaskNum, String outputFileName) in C:\_Releases\ICE\ICE3.2.300.41\Source\Server\Internal\Lib\TaskLib\TaskBase\TaskBase.cs:line 47
   at Ice.Hosting.TaskCaller.InnerExecuteTask(IceDataContext newContext) in C:\_Releases\ICE\ICE3.2.300.41\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 98
   at Ice.Hosting.TaskCaller.ExecuteTask() in C:\_Releases\ICE\ICE3.2.300.41\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 57
   at Ice.Lib.RunTask.BpmFriendlyTaskLauncher.Run(String sessionIdPrefix, IceContext db, Action taskRunner) in c:\_Releases\ICE\RL3.2.300.0\Source\Server\Services\Lib\RunTask\BpmFriendlyTaskLauncher.cs:line 63
   at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in c:\_Releases\ICE\RL3.2.300.0\Source\Server\Services\Lib\RunTask\RunTask.cs:line 577

This is the first time we’ve seen the full error, normally it’s just the shortened version we see with the B&R fails.

Maybe the account that used for Application Pool does not see your printers? assign some adming user to application pool and test.

1 Like

So, this has now been resolved…

We are currently running Epicor 10.2.300.41 on Server 2012 (Which is about to be out of Microsoft support), so we have been preparing a new Server 2016 for Epicor 10 (2016 is the highest officially supported for this version of Epicor).

Fresh server build, fresh install of Epicor 10.2.300.41, Registered SQL and our Live environment including SSRS. Limited testing and seems to be working, but no where near ready to move over due to shares/ssl certs/full testing of customizations etc.

It seems having this server running was the cause of the issue… Our printing and reporting has been perfect since taking it offline.

Any tips on the correct way to replicate our environment on to a new server?

We also have another Server 2012 running Pilot and Test, this does not give us issues. We even put Live on there for troubleshooting this week and it does not interfere as it does when on 2016.