Linux Container Migration: Let's Consolidate the Chaos

We have several custom code blocks in Erp.BO.Quote Method Directives and have been seeing inconsistent compilation behavior between environments since the move to Linux app servers (not certain it’s related, but that’s when we first noticed it).

What’s happening

When we add an “Execute Custom Code” block to the BPM canvas (even with only a comment or a single line of trivial code), we get compilation errors like this:

The same directives compile and run correctly in Production.

Environment behavior

  • Pilot – would not compile until yesterday afternoon, then suddenly began compiling again with no changes made by us
  • Third – would not compile yesterday at all
  • Third – compiling this morning
  • Pilot – after refreshing Pilot from Production (preparing for upgrade to 2025.2.12), compile failures returned

So we are seeing:

  • Inconsistent behavior across environments
  • Same code compiling in one environment but not another
  • Failures occurring even when the custom code block contains only a comment

Observations

  • This started after the move to Linux app servers.
  • No code changes were made between “not compiling” and “compiling again.”
  • A DB refresh from Production reintroduced the compile failures in Pilot.
  • The errors appear immediately when adding a Custom Code block, regardless of contents.

Has anyone else seen intermittent BPM compile failures on Quote BO in Linux environments?

Edit: I tried it again in Third just to make sure it still compiles the code, but now it’s NOT compiling in there either. :person_facepalming:

Just got an email from support.

Announcement: Update on Timeline for Cloud Container Migration to Linux (2025.2)

We are providing an updated timeline for customers running Kinetic in the Public Cloud as we transition cloud containers from Windows to Linux. This change is designed to strengthen security, enhance performance, and improve overall reliability.

This work is planned to occur within a standard maintenance window of approximately 6–8 hours. Please refer to status.epicor.com and subscribe to update notifications for the latest timing updates and environment-specific details as they become available.

Your Impact
The pilot environment has been upgraded. Teams should review custom code, including Functions, BPM, Product Configurator, and Electronic Interfaces, to confirm it continues to operate as expected. A Custom Code Report is available to help identify items that may require adjustment. Additional guidance is available in the Linux Containers FAQ on EpicWeb.

Regional Timeline and Next Steps
You will receive an email with the maintenance window and more details before your instance is upgraded to a Linux container, allowing you to plan accordingly.

Customers running from datacenters in:

  • United States:
    • Pilot : February 5
    • Production : April 11 OR April 28
      Note : we will send a follow-up communication to US customers clarifying a specific date for the migration update.

Note: Enterprise Cloud, Government Cloud, and Life Sciences Cloud are not part of the current migration plan. Timing for these environments will be shared once confirmed.

More information
For background materials, technical notes, and preparation guidance, please refer to the Linux Containers FAQ on EpicWeb.

Thank you for your continued partnership as we invest in delivering a more secure and resilient cloud platform.

Update on Timeline for Cloud Container Migration to Linux (2025.2)

  • Production: April 11 OR April 28
    Note: we will send a follow-up communication to US customers clarifying a specific date for the migration update.

I guess that’s it. I am not expecting any more movement on the Azure issue.

I am assuming I can’t update my live environment with the linux path until I am actually on linux, at which point the windows path will stop working and my EDI Import/Exports/Bartender/etc will stop working. After it breaks I can go in and fix it.

Unreal.

I tested it and nope it doesn’t work on Windows for our exports at least. Not sure if there is code to check if Windows or Linux and do an IF check.

Received the same email…this is utterly insane. We already suffered enough having our Pilot ravaged in the middle of version upgrade testing, now they want to ramrod it into Live already?

Our pilot hasn’t been migrated yet, and we have received zero communication on the timeline for that to happen, even on this thread, where Epicor employees were supposedly meant to provide information, clarification, and updates on what is going on.

taking bets: how many ‘consolidate the chaos’ threads deep are we when that happens?

Kind of sucks to be Flex 2, you only get 1 month to test?

Depends on perspective…

I think flex 2 peeps are hopeful that you guys tested well ahead of us.. :wink:

haha :joy:

Sad but true

I did not receive that announcement.

#Blacklisted

Just trying to figure out Epicor’s interest in keeping this information a secret . . .makes it difficult to plan when you don’t know when its coming.

The following email was sent to EpicCare Power users on Friday, March 6, at 3:45 p.m. CST

Subject: Notice: Production Environment Linux Migration Postponed
From: epicorcs@service-now.com
Announcement: Update on Timeline for Cloud Container Migration to Linux (2025.2)

We want to provide an update regarding the planned Linux migration for your production environment.

After further review during the pilot phase and additional discussions with customers, we have made the decision to postpone the previously scheduled production migration. We recognize that you have received several communications recently, and we want to simplify the message: we are pausing to ensure we execute this transition correctly for your production operations.

We know how critical it is for you to have a stable and predictable environment. Before proceeding, we are:

  • Ensuring critical issues are addressed
  • Completing additional validation under production-like load
  • Reconfirming integration touchpoints and downstream dependencies
  • Aligning the migration window more carefully with customer operating schedules

Our goal is to reduce operational risk and avoid unnecessary disruption to shop floor activity, shipping, or financial close processes.

A new migration date has not yet been finalized. We will provide one consolidated update next week with the proposed timeline, required actions (if any), and the anticipated production window.

We appreciate your patience as we improve both the migration plan and our communication around it. In the meantime, please continue to monitor status.epicor.com for official updates.

Thank you for your continued partnership.

EpicCare | EpicWeb | Epicor Ideas | status.epicor.com

Sharing a WORKING Solution SAAS Cloud Azure File System writes for Bartender Files.. In PILOT after the LINUX migration.

After reading forum threads , opening Epicare ticket , and a days worth of trial and error. Bartender file writes to Cloud Azure file directory are being picked up and processed.. Leaving out most But the affected changed syntax .. barHeader & line csv string variables are the actual data for the label.

Using the Azure Hosted File system seemed to inject /epi/fs/ automatically that support insisted I needed in my syntax .. every environment is different , this worked for me.

Eventually replacing with REST calls , but for now with everything else under time constraints ..

Bartender defined Pickup location stayed the same : W:\Bartender\Pickup

Original:

string outputFolder = Sandbox.Compatibility.ConvertPath(@"C:\epi\fs\Bartender\Pickup");

btwLabel = Sandbox.Compatibility.ConvertPath(@“C:\Bartender\Labels\XXXXX.btw”);

string btFile = outputFolder + “PartTran_” + Session.CompanyID + “_” + DateTime.Now.ToString(“yyyyMMdd_HHmmssfff”) + “.BT”;

System.IO.File.WriteAllText(btFile, barHeader + line);

NEW:

string BTFileShare = $@“Bartender/Pickup/”;

btwLabel = $@“W:\Bartender\Labels\XXXXX.btw”;

string btFile = (BTFileShare + “PartTran_” + Session.CompanyID + “_” + DateTime.Now.ToString(“yyyyMMdd_HHmmssfff”) + “.BT”);

var newpath = new FilePath(ServerFolder.FileShare, btFile);

Sandbox.IO.File.WriteAllText(newpath, barHeader + line);

!! Giving back to a group that has given me much ..

Hello All,

Does anyone have the updated timeline on this changeover, did it already happen haha :sweat_smile:

Pilot was flipped to Linux a while back on Public Cloud. They’re targeting the same weekend as the 2026.100 upgrade to do it Live.

Okay, didn’t want to cross threads in the 2026.100 thread we have going.

I thought that was the case, but didn’t know if people were already aware of that and just not talking about it in there or… Because, correct me if I’m wrong @JMPCONJ, but we are going to have to remember what we did to overcome the Pilot Linux challenges, but this time in the 2026.100 go-live, is that right?