# Problem detected when migrating subflows between machines

**URL:** <https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495>\
**Category:** General\
**Created:** [8 June 2025 22:16 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495 "2025-06-08T22:16:28Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [8 June 2025 22:16 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/1 "2025-06-08T22:16:28Z")

</div>

Yes, how I am doing it may be making my own life miserable, but it's the only way I know.

Details - as best I can give:  
EXPORTING FROM: NR 4.0.9  
IMPORTING TO: NR 3.0.2 and 4.0.9

I would import it, REPLACE the node, and do a bit of fixing up of other stuff.

ALSO: The subflow had been severely altered in that how many outputs there are/were.  
Reduced.

Re-wire it and DEPLOY.

Things weren't working.

I'd inject messages and NOTHING happened.  
After a few attempts, I would open the subflow and look at it's internals.

Half/all/most of the wires were missing.

Now, I'm not sure if I also re-exported it or just imported it again.

All wires intact.

WEIRD.

Just to put it out there.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:09 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/2 "2025-06-09T01:09:22Z")

</div>

# HUGE DEVELOPMENT

I don't understand what is going on.  
I am only reporting what I'm seeing.

I said that I import subflows and **sometimes** the internal wires are either all or some missing.

I was working on the tab/flow which such a subflow and had only just updated the machine to NR 4.x

Me `debug` is set to `this tab`.  
I'm on that tab and I am getting WEIRD messages.

## W.E.I.R.D

```auto
TypeError: sendEvent.destination.node.receive is not a function
    at deliverMessageToDestination (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:811:40)
    at Immediate._onImmediate (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:827:21)
    at process.processImmediate (node:internal/timers:476:21)

```

But wanting to remain focused as possible.... _(Look! Squirrel!)_ I was wanting to get to the bottom of why the subflow wasn't working.

Lowe and behold:  
I opened the subflow....

NADA!  
NOTHING!

drum roll and build up!

 ![Screenshot from 2025-06-09 10-58-43](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/6/36e8da35b623bb7dfbde33e81eacd6bdb34c604b.png)

 ![Screenshot from 2025-06-09 10-59-04](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/a/9a4ac5e4330d341584e70034afcb4cf536bced4d.png)

 ![Screenshot from 2025-06-09 10-59-10](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/f/7fa59a445f694fe8214352a0d3b144758aa7ef61.png)

So, this is getting very interesting.

## Again:

I don't know/understand what's going on.

I'm sharing it to (maybe) help someone else suffering the same problem/s.

I'll re-import the subflow and post back.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:14 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/3 "2025-06-09T01:14:13Z")

</div>

Well, it made a liar of me.

Didn't fix the problem.

Still happening and there is nothing to identify which node is causing it.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [9 June 2025 01:14 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/4 "2025-06-09T01:14:31Z")

</div>

I don't use subflows, but clearly yours are **"messed up"** (technical term).

This is almost certainly the cause of the error messages in the logs, as NR is not able to route messages via missing wires and nodes.

How this has occurred I'm afraid I don't know, and will defer to others !

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:16 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/5 "2025-06-09T01:16:46Z")

</div>

Steve, no problems.

Thanks.

No offence taken. I know I'm messed up. 😉

But HOW it (NR, the node, or _someone_) got access to that path....  
There are 4 files there.

They are all .json and don't seem malicious.

Just _ROGUE_.

Could you maybe point me to where a _useful_ log would be?  
I have looked in the places I know but they are more install logs and npm logs.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:20 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/6 "2025-06-09T01:20:29Z")

</div>

(Only to not go back and edit pervious posts)  
(I should also dig just that bit deeper.)

I was wrong again.

# Just opened the subflow - a third time - and it is STILL missing wires!

Be right back with more soon.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:24 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/7 "2025-06-09T01:24:31Z")

</div>

Third/fourth? time lucky.

All the wires are now there on THAT subflow.

Still getting the rogue messages.  
(Don't know if they should be a separate thread)

I quickly checked a couple of other subflows on that tab.... All seem ok.

I'll do a bit more comparing now.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:33 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/8 "2025-06-09T01:33:04Z")

</div>

Ok, I have copied the _Offending_ files to my machine.

They are all `.json` files.

 ![Screenshot from 2025-06-09 11-26-21](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/5/45af7a4dd3ffc1c9a175afc834b920d1632a6025.png)

And dated recent.

I opened a new tab and tried to import the `Flow.js`.  
Wouldn't.

 ![Screenshot from 2025-06-09 11-30-29](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/3/a3a85c8e0dbcd0b67425c42ea61b5a33f12a0a5b.png)

Anyone recognise this code?  
(Incomplete. Too long to post)

```auto
/**
 * Copyright JS Foundation and other contributors, http://js.foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 **/

const clone = require("clone");
const redUtil = require("@node-red/util").util;
const events = require("@node-red/util").events;
const flowUtil = require("./util");
const context = require('../nodes/context');
const hooks = require("@node-red/util").hooks;
const credentials = require("../nodes/credentials");

let Subflow;
let Log;
let Group;

let nodeCloseTimeout = 15000;
let asyncMessageDelivery = true;

/**
 * This class represents a flow within the runtime. It is responsible for
 * creating, starting and stopping all nodes within the flow.
 */
class Flow {

    /**
     * Create a Flow object.
     * @param {[type]} parent The parent flow
     * @param {[type]} globalFlow The global flow definition
     * @param {[type]} flow This flow's definition
     */
    constructor(parent,globalFlow,flow) {
        this.TYPE = 'flow';
        this.parent = parent;
        this.global = globalFlow;
        if (typeof flow === 'undefined') {
            this.flow = globalFlow;
            this.isGlobalFlow = true;
        } else {
            this.flow = flow;
            this.isGlobalFlow = false;
        }
        this.id = this.flow.id || "global";
        this.groups = {}
        this.groupOrder = []
        this.activeNodes = {};
        this.subflowInstanceNodes = {};
        this.catchNodes = [];
        this.statusNodes = [];
        this.path = this.id;
        // Ensure a context exists for this flow
        this.context = context.getFlowContext(this.id,this.parent.id);
        
        // env is an array of env definitions
        // _env is an object for direct lookup of env name -> value
        this.env = this.flow.env
        this._env = {}
    }

    /**
     * Log a debug-level message from this flow
     * @param {[type]} msg [description]
     * @return {[type]} [description]
     */
    debug(msg) {
        Log.log({
            id: this.id||"global",
            level: Log.DEBUG,
            type:this.TYPE,
            msg:msg
        })
    }

    /**
     * Log an error-level message from this flow
     * @param {[type]} msg [description]
     * @return {[type]} [description]
     */
    error(msg) {
        Log.log({
            id: this.id||"global",
            level: Log.ERROR,
            type:this.TYPE,
            msg:msg
        })
    }

    /**
     * Log a info-level message from this flow
     * @param {[type]} msg [description]
     * @return {[type]} [description]
     */
    info(msg) {
        Log.log({
            id: this.id||"global",
            level: Log.INFO,
            type:this.TYPE,
            msg:msg
        })
    }

    /**
     * Log a trace-level message from this flow
     * @param {[type]} msg [description]
     * @return {[type]} [description]
     */
    trace(msg) {
        Log.log({
            id: this.id||"global",
            level: Log.TRACE,
            type:this.TYPE,
            msg:msg
        })
    }

    /**
     * [log description]
     * @param {[type]} msg [description]
     * @return {[type]} [description]
     */
    log(msg) {
        if (!msg.path) {
            msg.path = this.path;
        }
        this.parent.log(msg);
    }

    /**
     * Start this flow.
     * The `diff` argument helps define what needs to be started in the case
     * of a modified-nodes/flows type deploy.
     * @param {[type]} msg [description]
     * @return {[type]} [description]
     */
    async start(diff) {
        this.trace("start "+this.TYPE+" ["+this.path+"]");
        var node;
        var newNode;
        var id;
        this.catchNodes = [];
        this.statusNodes = [];
        this.completeNodeMap = {};

        if (this.isGlobalFlow) {
            // This is the global flow. It needs to go find the `global-config`
            // node and extract any env properties from it
            const configNodes = Object.keys(this.flow.configs);
            for (let i = 0; i < configNodes.length; i++) {
                const node = this.flow.configs[configNodes[i]]
                if (node.type === 'global-config' && node.env) {
                    const globalCreds = credentials.get(node.id)?.map || {}
                    const nodeEnv = await flowUtil.evaluateEnvProperties(this, node.env, globalCreds)
                    this._env = { ...this._env, ...nodeEnv }
                }
            }
        }

        if (this.env) {
            this._env = { ...this._env, ...await flowUtil.evaluateEnvProperties(this, this.env, credentials.get(this.id)) }
        }

        // Initialise the group objects. These must be done in the right order
        // starting from outer-most to inner-most so that the parent hierarchy
        // is maintained.
        this.groups = {}
        this.groupOrder = []
        const groupIds = Object.keys(this.flow.groups || {})
        while (groupIds.length > 0) {
            const id = groupIds.shift()
            const groupDef = this.flow.groups[id]
            if (!groupDef.g || this.groups[groupDef.g]) {
                // The parent of this group is available - either another group
                // or the top-level flow (this)
                const parent = this.groups[groupDef.g] || this
                this.groups[groupDef.id] = new Group(parent, groupDef)
                this.groupOrder.push(groupDef.id)
            } else {
                // Try again once we've processed the other groups
                groupIds.push(id)
            }
        }

        for (let i = 0; i < this.groupOrder.length; i++) {
            // Start the groups in the right order so they
            // can setup their env vars knowning their parent
            // will have been started
            await this.groups[this.groupOrder[i]].start()
        }

        var configNodes = Object.keys(this.flow.configs);
        var configNodeAttempts = {};
        while (configNodes.length > 0) {
            id = configNodes.shift();
            node = this.flow.configs[id];
            if (!this.activeNodes[id]) {
                if (node.d !== true) {
                    var readyToCreate = true;
                    // This node doesn't exist.
                    // Check it doesn't reference another non-existent config node
                    for (var prop in node) {

```

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:33 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/9 "2025-06-09T01:33:57Z")

</div>

This is `group.js`  
(Short)

```auto
const flowUtil = require("./util");
const credentials = require("../nodes/credentials");
const clone = require("clone");

/**
 * This class represents a group within the runtime.
 */
class Group {

    /**
     * Create a Group object.
     * @param {[type]} parent The parent flow/group
     * @param {[type]} groupDef This group's definition
     */
    constructor(parent, groupDef) {
        this.TYPE = 'group'
        this.name = groupDef.name
        this.parent = parent
        this.group = groupDef
        this.id = this.group.id
        this.g = this.group.g
        this.env = this.group.env
        this._env = {}
    }

    async start() {
        if (this.env) {
            this._env = await flowUtil.evaluateEnvProperties(this, this.env, credentials.get(this.id))
        }
    }
    /**
     * Get a group setting value.
     * @param {[type]} key [description]
     * @return {[type]} [description]
     */
    getSetting(key) {
        if (key === "NR_GROUP_NAME") {
            return this.name;
        }
        if (key === "NR_GROUP_ID") {
            return this.id;
        }
        if (!key.startsWith("$parent.")) {
            if (this._env.hasOwnProperty(key)) {
                return (this._env[key] && Object.hasOwn(this._env[key], 'value') && this._env[key]. __clone__ ) ? clone(this._env[key].value) : this._env[key]
            }
        } else {
            key = key.substring(8);
        }
        return this.parent.getSetting(key);
    }

    error(msg) {
        this.parent.error(msg);
    }

    getContext(scope) {
        return this.parent.getContext(scope);
    }
}

module.exports = {
    Group
}

```

ALL the files were in (path)  
`/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/`

Way beyond what I thought was allowable.

---

<div class="post-metadata">

**Author:** ![xx\_Nexus\_xx](https://avatars.discourse-cdn.com/v4/letter/x/54ee81/32.png) [@xx\_Nexus\_xx](https://discourse.nodered.org/u/xx_Nexus_xx)\
**Post date:** [9 June 2025 01:44 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/10 "2025-06-09T01:44:09Z")

</div>

I had a similar issue a while back , when moving code (incl subflows) from my dev machine to my prod. I check the code on a WIN and MAC machine and the lines were missing in both systems

A full shutdown of my PROD system solved the issue.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:50 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/11 "2025-06-09T01:50:36Z")

</div>

I'm not sure I understand what you did to fix it.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 01:51 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/12 "2025-06-09T01:51:05Z")

</div>

I notice a very similar problem happened a long time ago:

[Something similar](https://discourse.nodered.org/t/well-that-odd-npm-issue-is-back/30569/22)

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 03:00 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/13 "2025-06-09T03:00:59Z")

</div>

# ANOTHER DEVELOPMENT

So thing are really getting bad here.

I explained how I imported the subflow; all the wires aren't getting there.

After several attempts it was all working.

Yeah, nice.

# BUT!

The machine started to get these rogue messages.  
Out of desperation, I updated it to the lates NR.  
4.0.9 NJS 18.x  
Buster.

Messed around a couple of times as it _hung_.

Got it up and running again.

It isn't working 100%.

Opened up the most recent imported subflow. (Machine health V2) as per this thread.

# NO WIRES!

# HOW???!!!

This is very disheartening.

Ok, more:  
(still with me?)

I **FINALLY** for the subflow all imported.  
All wires.  
Everything.

Still getting those errors/messages.

Opened it up. Yes, all wires there.

Copied all the nodes out of the subflow, and put them at _flow level_.  
Disabled the subflow, wired the nodes as though they were the subflow.

# WORKS!

# THOUGHT

MAYBE - somewhere in the depths of all this:  
The _routine_ that handles subflows has _lost its wheels_ (Aka broke)  
Has it been looked at since..... ?????

(and I did wait to be sure before posting.)

It has (again) made a liar of me.

Still getting the rogue messages even with the subflow disabled.

## THOUGH!

I do have other subflows on that tab.  
Maybe this precipitated all this mess.  
🤷  
But on _machine 3_ which has the same subflow etc....  
Same tab open. No errors.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 03:28 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/14 "2025-06-09T03:28:57Z")

</div>

# AND ANOTHER IMPORTANT UPDATE ON WHAT'S HAPPENING

Well, this is a weird one.

The `subflow` was DISABLED.  
All the wires into/out of it were rerouted to the _exported_ nodes that were sitting at the same level/layer as the others.

## Note: It was DISABLED. I left the wires going in/out of it.

_(This is important)_

The errors/messages kept happening.

I DELETED the wires going INTO it.

DEPLOYED.

Messages stopped!

Go figure.

Please - someone.

---

<div class="post-metadata">

**Author:** ![xx\_Nexus\_xx](https://avatars.discourse-cdn.com/v4/letter/x/54ee81/32.png) [@xx\_Nexus\_xx](https://discourse.nodered.org/u/xx_Nexus_xx)\
**Post date:** [9 June 2025 04:55 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/15 "2025-06-09T04:55:02Z")

</div>

My system is running on docker, so I completely restarted the NR docker ... full system restart for Node-Red

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 04:56 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/16 "2025-06-09T04:56:14Z")

</div>

I am stupid.

I am not understanding what you mean.

What? You simply go into the CLI/Terminal and `node-red-restart`?

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [9 June 2025 06:39 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/17 "2025-06-09T06:39:52Z")

</div>

This is the internal code of the runtime

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 10:05 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/18 "2025-06-09T10:05:25Z")

</div>

Sorry folks, I'm writing `War and piece` with this.

But...... Not to be outwitted.

All I feel I can do is _Throw crap at it and take notes_.

So let's start.

This is going to be long. _But with pictures!_

# Base line:

Walk through  
This is the part of the flow that does things.  
The `join` points.... used to _switch_ where the existing signal to go.  
Up high is the exported insides of the subflow (green area)  
Note time and debug window.  
subflow input is NOT connected! (Important)  
Also note the red/green lines showing _WHO_ is connected.

 ![Screenshot from 2025-06-09 19-12-14](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/a/aa3b9060683eeab4f568d02758b3a1fc23cac22c.png)

Some time later.....  
No errors.

 ![Screenshot from 2025-06-09 19-15-34](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/9/f98f4522f99d8559f3cae3240b1b2c03f86abb49.png)

Note how the _wires_ have now moved and the top part is disconnected and the SUBFLOW input is now connected.

## But note:

The subflow is still DISABLED  
Now I'll press DEPLOY

 ![Screenshot from 2025-06-09 19-16-25](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/7/075fb943f5e3881295ad176a24fb4c88a83715ef.png)

Deployed.  
Note times. 19:17

 ![Screenshot from 2025-06-09 19-17-32](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/d/8d55ececf62745585d180896d2c8e65daae6803d.png)

Time 19:18  
**ONE MINUTE**  
ERROR  
subflow DISABLED!

 ![Screenshot from 2025-06-09 19-18-00](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/2/42f4ec810d4551f062d1bd5d726ba01975b839bf.png)

Let's go further!  
Wire removed to subflow.  
Then DEPLOY

 ![Screenshot from 2025-06-09 19-19-09](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/e/3e8cd93f68ca05445dc2e21be4755fa5f4aa6a30.png)

After deployment.  
Errors wiped after I deploy to show any new ones.  
NO errors.

 ![Screenshot from 2025-06-09 19-20-08](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/d/0d3995d01e31b398c9098926697e7fde30187c7c.png)

Time passes.  
No errors.  
Note times.  
Now let's look at it a bit more.  
This is a copy of the subflow (duplicate) with some inputs.  
DEPLOYED

 ![Screenshot from 2025-06-09 19-23-36](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/3/33d2a5953addb2d0a5a82c312aacabdf14858367.png)

Some time later.  
No errors

 ![Screenshot from 2025-06-09 19-27-46](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/d/1db7ab372437b03fe7a7aaf3ed136e3f23b0c3c4.png)

More time.  
No errors  
I added a node to show the time, so you can see how long has gone by with no errors.

 ![Screenshot from 2025-06-09 19-29-43](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/0/6000edd25e8b6ea7ee4f7fa47d96b4c41e0409a6.png)

Injecting messages. Quite a few.  
NO ERRORS

 ![Screenshot from 2025-06-09 19-32-20](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/9/492a836817b132affccf749e9865633cbc5239f9.png)

Still no errors

 ![Screenshot from 2025-06-09 19-34-53](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/e/3e5aaab2f14b9620553b2894bb6f82e7e47bf887.png)

And still no errors.

 ![Screenshot from 2025-06-09 19-37-09](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/9/c9ed0eb572544d5336851793bcc9064671e4ade8.png)

and still none

 ![Screenshot from 2025-06-09 19-38-40](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/a/caaa245df58352339f06d76b3feb3b27b383e412.png)

Now we'll go back to the original subflow.  
Note times, and wires into the subflow.  
(yes a bit repetitive, but to show I am not hiding anything)

 ![Screenshot from 2025-06-09 19-39-56](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/7/175be8c52579018edc5e99c8c6d98bed3635dcb9.png)

No errors

 ![Screenshot from 2025-06-09 19-41-28](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/c/1c3b1e4c20e564b795913a01a92a5132add9821b.png)

Move the wires and look at that!  
ERRORS!

 ![Screenshot from 2025-06-09 19-44-09](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/1/61b214c33dfe466d82e81966199a188fc75e66a8.png)

# PLEASE.... SOMEONE....

# What have I found?

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [9 June 2025 10:10 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/19 "2025-06-09T10:10:26Z")

</div>

Can you retry with a full deploy

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [9 June 2025 10:13 UTC](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495/20 "2025-06-09T10:13:43Z")

</div>

Gee I'm impressed you read it.

Here's what happened ITMT between me posting that and when you replied.

I copied the second subflow and put it below the first one.  
Connected it and it works.

 ![Screenshot from 2025-06-09 20-08-35](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/f/1f0088967586e6cd1c8f761e5e925dfc0a6bca4a.png)

I have since wired up the rest and it works.

I'll leave the original one there for now and when I have caught my breath, I may give it a go.

But my head hurts with this happening as it has.

[Next page](https://discourse.nodered.org/t/problem-detected-when-migrating-subflows-between-machines/97495.md?page=2)
