diff --git a/src/kupdatelaunchenvironmentjob.cpp b/src/kupdatelaunchenvironmentjob.cpp
index 981666e51bf6d4e40f349d60e7b78770239fb18d..6af300301dab70e2273f672e74f6629aaeb89f51 100644
--- a/src/kupdatelaunchenvironmentjob.cpp
+++ b/src/kupdatelaunchenvironmentjob.cpp
@@ -23,6 +23,7 @@ public:
     void monitorReply(const QDBusPendingReply<> &reply);
 
     static bool isPosixName(const QString &name);
+    static bool isProcessConfinementName(const QString &name);
     static bool isSystemdApprovedValue(const QString &value);
 
     KUpdateLaunchEnvironmentJob *q;
@@ -71,6 +72,10 @@ void KUpdateLaunchEnvironmentJob::start()
             qCWarning(KDBUSADDONS_LOG) << "Skipping syncing of environment variable " << varName << "as name contains unsupported characters";
             continue;
         }
+        if (KUpdateLaunchEnvironmentJobPrivate::isProcessConfinementName(varName)) {
+            qCWarning(KDBUSADDONS_LOG) << "Skipping syncing of environment variable " << varName << "as name is related to process specific confinement";
+            continue;
+        }
         const QString value = d->environment.value(varName);
 
         // plasma-session
@@ -137,6 +142,14 @@ bool KUpdateLaunchEnvironmentJobPrivate::isPosixName(const QString &name)
     return !first;
 }
 
+bool KUpdateLaunchEnvironmentJobPrivate::isProcessConfinementName(const QString &name)
+{
+    if (name == QStringLiteral("SNAP") || name.startsWith(QStringLiteral("SNAP_"))) {
+        return true;
+    }
+    return false;
+}
+
 bool KUpdateLaunchEnvironmentJobPrivate::isSystemdApprovedValue(const QString &value)
 {
     // systemd code checks that a value contains no control characters except \n \t
