<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Edge on [BLOG].rdiez.es</title><link>https://blog.rdiez.es/en/tags/edge/</link><description>Recent content in Edge on [BLOG].rdiez.es</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 04 Nov 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rdiez.es/en/tags/edge/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Fix Microsoft Edge Crashing on Linux (Wayland) When Downloading Files</title><link>https://blog.rdiez.es/en/p/how-to-fix-microsoft-edge-crashing-on-linux-wayland-when-downloading-files/</link><pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.rdiez.es/en/p/how-to-fix-microsoft-edge-crashing-on-linux-wayland-when-downloading-files/</guid><description>&lt;img src="https://blog.rdiez.es/p/solucionar-el-cierre-de-microsoft-edge-en-linux-wayland-al-descargar-archivos/banner.png" alt="Featured image of post How to Fix Microsoft Edge Crashing on Linux (Wayland) When Downloading Files" /&gt;&lt;p&gt;If you&amp;rsquo;re a Linux desktop user, you&amp;rsquo;re likely using &lt;strong&gt;Wayland&lt;/strong&gt; as your display server. And if you&amp;rsquo;re also one of those people who use &lt;strong&gt;Microsoft Edge&lt;/strong&gt;, you might have run into a frustrating issue with recent versions of the browser: &lt;strong&gt;it closes completely (crashes) the instant you try to download any file.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It doesn&amp;rsquo;t seem to be a one-off issue. Fortunately, the problem has a clear diagnosis and a fairly simple solution. Let&amp;rsquo;s fix this problem step-by-step:&lt;/p&gt;
&lt;h2 id="whats-happening"&gt;What&amp;rsquo;s Happening?
&lt;/h2&gt;&lt;p&gt;When the browser crashes, the first thing to do is run it from a terminal to see what it tells us. If you run &lt;code&gt;microsoft-edge&lt;/code&gt; and trigger the crash, you&amp;rsquo;ll probably see an error log similar to this one from libwayland: &lt;code&gt;exported surface had an invalid role&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;❯ microsoft-edge
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;...errors omitted...&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;505387:505387:1104/130749.871196:ERROR:ui/events/platform/wayland/wayland_event_watcher.cc:47&lt;span class="o"&gt;]&lt;/span&gt; libwayland: zxdg_exporter_v2#25: error 0: exported surface had an invalid role
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;...errors omitted...&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;1&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;505387&lt;/span&gt; trace &lt;span class="nb"&gt;trap&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;core dumped&lt;span class="o"&gt;)&lt;/span&gt; microsoft-edge
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;In plain English:&lt;/strong&gt; When you try to download something, Edge (which is based on Chromium) tries to open the &amp;ldquo;Save As&amp;rdquo; dialog using the native Wayland protocol. However, it assigns it a &amp;ldquo;role&amp;rdquo; (a type of window) that your Wayland compositor (like Mutter in GNOME or KWin in KDE) doesn&amp;rsquo;t understand or considers invalid. This disagreement causes a fatal error, and the browser closes without any further explanation.&lt;/p&gt;
&lt;h2 id="the-solution-step-by-step"&gt;The Solution, Step-by-Step
&lt;/h2&gt;&lt;p&gt;The solution is to force Microsoft Edge to &lt;strong&gt;not use Wayland&lt;/strong&gt; natively. Instead, it will run through &lt;strong&gt;XWayland&lt;/strong&gt;, a compatibility layer for X11 applications that exists for exactly this type of situation.&lt;/p&gt;
&lt;h3 id="step-1-verify-the-solution"&gt;Step 1: Verify the Solution
&lt;/h3&gt;&lt;p&gt;First, let&amp;rsquo;s confirm this is the solution. Completely close all Microsoft Edge windows you might have open.&lt;/p&gt;
&lt;p&gt;Next, open a terminal and run the following command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;microsoft-edge --ozone-platform&lt;span class="o"&gt;=&lt;/span&gt;x11
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This command tells Edge: &amp;ldquo;Ignore Wayland and run using the X11 compatibility layer (XWayland).&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Now, with the browser open from that terminal, &lt;strong&gt;try to download a file&lt;/strong&gt;. The &amp;ldquo;Save As&amp;rdquo; dialog should appear without any issues, and the browser will no longer crash.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You might see some new errors in the terminal, like &lt;code&gt;GetVSyncParametersIfAvailable() failed&lt;/code&gt;. Don&amp;rsquo;t worry! These are minor, non-fatal warnings related to the compatibility layer, and you can safely ignore them. The important thing is that the &lt;em&gt;crash&lt;/em&gt; is gone.&lt;/p&gt;
&lt;h3 id="step-2-apply-the-permanent-solution"&gt;Step 2: Apply the Permanent Solution
&lt;/h3&gt;&lt;p&gt;Now that we know what the problem is and how to fix it, let&amp;rsquo;s make this change permanent so Edge &lt;em&gt;always&lt;/em&gt; starts with this setting, regardless of whether you open it from your dock icon or the applications menu.&lt;/p&gt;
&lt;p&gt;To do this, we will modify the application&amp;rsquo;s &lt;code&gt;.desktop&lt;/code&gt; file (its launcher).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Copy the launcher to your local directory:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are not going to edit the system file directly, as &lt;code&gt;sudo&lt;/code&gt; is unnecessary and a browser update could overwrite our changes. Instead, we&amp;rsquo;ll copy it to our user profile. Keep in mind that the filename might vary depending on whether you are using the stable, dev, etc., version.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp /usr/share/applications/microsoft-edge.desktop ~/.local/share/applications/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open the file for editing:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now, open this new file with a text editor. Let&amp;rsquo;s use &lt;code&gt;nano&lt;/code&gt; as an example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nano ~/.local/share/applications/microsoft-edge.desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modify the &lt;code&gt;Exec&lt;/code&gt; lines:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Inside this file, you&amp;rsquo;ll see several lines that start with &lt;code&gt;Exec=&lt;/code&gt;. These lines tell the system how to run the program. You need to find all the &lt;code&gt;Exec=&lt;/code&gt; lines that run the main binary (like &lt;code&gt;Exec=/usr/bin/microsoft-edge-stable %U&lt;/code&gt; or &lt;code&gt;Exec=/usr/bin/microsoft-edge-stable --in-private-browsing&lt;/code&gt;) and add the &lt;code&gt;--ozone-platform=x11&lt;/code&gt; flag to them.&lt;/p&gt;
&lt;p&gt;Make sure to add it &lt;strong&gt;after the command but before any variables&lt;/strong&gt; like &lt;code&gt;%U&lt;/code&gt; or &lt;code&gt;--new-window&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Example (Before):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Desktop Entry]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/bin/microsoft-edge-stable %U&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Desktop Action new-window]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/bin/microsoft-edge-stable --new-window&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Desktop Action new-private-window]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/bin/microsoft-edge-stable --in-private-browsing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Example (After):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Desktop Entry]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/bin/microsoft-edge-stable --ozone-platform=x11 %U&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Desktop Action new-window]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/bin/microsoft-edge-stable --ozone-platform=x11 --new-window&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Desktop Action new-private-window]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/bin/microsoft-edge-stable --ozone-platform=x11 --in-private-browsing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Save and Exit:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Continuing with the previous example, in &lt;code&gt;nano&lt;/code&gt;, we save by pressing &lt;code&gt;Ctrl + O&lt;/code&gt; (Enter) and then exit with &lt;code&gt;Ctrl + X&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s it! Now we will automatically use the modified and fully functional launcher :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS&lt;/strong&gt;: Banner image generated with A.I.&lt;/p&gt;</description></item></channel></rss>