Mup deploy failing when pushing Meteor App

Hi folks,

I’m at my wits’ end on this one. About a month ago I deployed a small change to our meteor based app using mup.js, and it worked as expected as it has for the last 2 years.

Yesterday and today however, I have another small change that I need to deploy but can’t at the moment. I noticed mup went from 1.5.0 -> 1.5.2 -> 1.5.3 over the past week and I’ve tried those versions with no luck.

This error I’m seeing is when mup is Pushing Meteor App and it’s ECONNRESET thrown by the ssh2 lib. Another dev tried deploying, and they had an issue of the deploy hanging for at least 45 minutes.

Meteor is v1.10.2, and the mup config looks like this:

module.exports = {
  proxy: {
    domains: "<company-site>.com",
    ssl: {
      letsEncryptEmail: "user@<company-site>.com",
      forceSSL: true,
    },
  },
  servers: {
    one: {
      host: "#.#.#.#",
      username: "user",
      pem: "/path/to/pem",
    },
  },
  app: {
    name: "app",
    path: "/path/to/project",

    servers: {
      one: {},
    },

    buildOptions: {
      serverOnly: true,
    },

    env: {
      // If you are using ssl, it needs to start with https://
      ROOT_URL: "https://<company-site>.com",
      MONGO_URL:
        "mongodb+srv://<mongo-url>",
    },
    docker: {
      image: "abernix/meteord:node-12-base",
    },
    enableUploadProgressBar: true,
  },

};

We use an AWS EC2 instance for meteor, and I have no problems ssh’ing onto it using the same user/ssh-key as the mup config.

I’m super appreciative of any insights anyone might have or if they can point me to any other resources.

From memory there were some issues with mup versions. Given that you are not using the new features (Elastic Beanstalk), I would say you are safe to just revert to a slightly older version of mup.

Hey thanks mikkelking.

The issue looks to be my firewall resetting mup’s ssh connection. Apparently, the connection being made is from an older ssh client that is tripping vulnerability detection.

It looks to be entirely on my end but figured I’d give a heads up to anyone ripping their hair out.

Not sure if it’s relevant, but mup uses a js implementation of ssh (rather than the ssh resident on your machine). Perhaps that needs an update?

Could it be this problem?

To workaround this, you have to downgrade Node to 12.x.

@waldgeist & @mikkelking

I was using the node-12-base image for docker and stepped down to mup@1.4.5. I got the deploy to work by temporarily disabling some firewall rules (not sure which, I had a lot of help on that one).

Apparently any ssh client under 3.4 will trip the firewall rules. I think the node-based ssh2 lib used by mup was showing up as 2.x.