{"id":51359,"date":"2026-06-09T14:21:26","date_gmt":"2026-06-09T14:21:26","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=51359"},"modified":"2026-06-09T14:21:26","modified_gmt":"2026-06-09T14:21:26","slug":"transmission-workarounds-ubuntu-2604","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2026\/06\/transmission-workarounds-ubuntu-2604\/","title":{"rendered":"Transmission issues and workarounds on (K)Ubuntu 26.04"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-43680\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-600x600.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/p>\n<p>Transmission, the default BitTorrent client does not work properly in Ubuntu 26.04. Here are a few workarounds.<\/p>\n<p>Due to new version of the AppArmor security module, some features in the Transmission BitTorrent client do not work properly in Ubuntu since 25.04.<\/p>\n<p><!--more--><\/p>\n<p>It&#8217;s because AppArmor in new Ubuntu versions includes new profile that restricts file access, network usage, specific commands execution etc permissions for Transmission. That profile is however NOT perfectly defined, so some features stop working!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51360\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transgtk-open-700x449.webp\" alt=\"\" width=\"610\" height=\"391\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transgtk-open-700x449.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transgtk-open-300x192.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transgtk-open-768x492.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transgtk-open.webp 861w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<h3>Option 1: Switch profile to complain mode<\/h3>\n<p>The easiest way to &#8220;fix&#8221; all the issues is simply stop the AppArmor protection for Transmission. In the case, the BitTorrent client will work the way just like in Ubuntu 24.04 and earlier, though, it may be less secure.<\/p>\n<p>First, press Ctrl+Alt+T to open terminal, and run the command below to install the utilities to handle AppArmor profiles:<\/p>\n<pre>sudo apt install apparmor-utils<\/pre>\n<p><i>You may run <code>sudo apt update<\/code> to refresh cache first if the command above does not work.<\/i><\/p>\n<p>Then, run the command below to switch the Transmission profile to complain mode:<\/p>\n<pre>sudo aa-complain \/usr\/bin\/transmission-gtk<\/pre>\n<p>Here you may replace <code>transmission-gtk<\/code> with <code>transmission-qt<\/code> or <code>transmission-daemon<\/code> for the Qt UI or the daemon. In the complain mode, the security policy is not enforced, but it will write access violations into system log.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51361\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/trans-complainmode-700x532.webp\" alt=\"\" width=\"610\" height=\"464\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/trans-complainmode-700x532.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/trans-complainmode-300x228.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/trans-complainmode.webp 709w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>Or, you may disable the profile, which works for all Transmission UIs.<\/p>\n<pre>sudo aa-disable \/etc\/apparmor.d\/transmission<\/pre>\n<p>And, to switch back the enforce mode, use command:<\/p>\n<pre>sudo aa-enforce \/usr\/bin\/transmission-gtk<\/pre>\n<p>Also replace <code>transmission-gtk<\/code> accordingly.<\/p>\n<p>And, if you disabled the profile, then use the command below to switch back.<\/p>\n<pre>sudo aa-enforce \/etc\/apparmor.d\/transmission<\/pre>\n<h3>Option 2: Fix &#8220;Open&#8221; torrent dialog for Transmission-Qt in KUbuntu 26.04<\/h3>\n<p><b>NOTE: So far I do not figure out how to fix the &#8220;Open&#8221; button for GTK UI. But you may drag&#8217;n&#8217;drop .torrent file from Downloads folder to Transmission to workaround.<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51362\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-qt-error-700x486.webp\" alt=\"\" width=\"610\" height=\"424\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-qt-error-700x486.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-qt-error-300x208.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-qt-error-768x533.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-qt-error.webp 1081w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>As the screenshot above shows you, the &#8220;Open&#8221; button (or Ctrl + O) open &#8220;.torrent&#8221; dialog does NOT work properly in the Qt UI. It shows error:<\/p>\n<blockquote><p>Unable to create KIO worker. Can not create a socket for launching a KIO worker for protocol &#8216;tags&#8217;.<\/p><\/blockquote>\n<p>To fix the issue, open terminal (konsole) and run command:<\/p>\n<pre>sudo nano \/etc\/apparmor.d\/local\/transmission-qt<\/pre>\n<p>This command will create a local configuration file for <code>transmission-qt<\/code> AppArmor profile, and edit via nano command line text editor.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51363\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/local-transqtprofile-700x484.webp\" alt=\"\" width=\"610\" height=\"422\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/local-transqtprofile-700x484.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/local-transqtprofile-300x207.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/local-transqtprofile-768x531.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/local-transqtprofile.webp 990w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>When file opens, paste the following content (Ctrl+Shift+V):<\/p>\n<pre>  # Allow execution of xdg-open, kde-open, and KIO worker\r\n  \/usr\/bin\/xdg-open rix,\r\n  \/usr\/bin\/kde-open rix,\r\n  \/usr\/lib\/@{multiarch}\/libexec\/kf6\/kioworker rix,\r\n  # Wayland and ICE sockets\r\n  owner \/run\/user\/@{uid}\/wayland-[0-1] rw,\r\n  owner \/run\/user\/@{uid}\/iceauth_* r,\r\n  owner \/run\/user\/@{uid}\/#* rwlk,\r\n\r\n  # KIO worker sockets (read\/write and linking)\r\n  owner \/run\/user\/@{uid}\/kio* rw,\r\n  owner \/run\/user\/@{uid}\/kioclient* rwlk,\r\n  owner \/run\/user\/@{uid}\/kio*\/** rwlk,\r\n  owner \/run\/user\/@{uid}\/*.kioworker.socket rwlk,\r\n\r\n  \r\n  # Recent files and KIO cookie\/state files\r\n  owner @{HOME}\/.local\/share\/recently-used.xbel rw,\r\n  owner @{HOME}\/.local\/share\/recently-used.xbel.lock rwk,\r\n  owner @{HOME}\/.local\/share\/#* rwlk,\r\n\r\n  # KIO configuration\r\n  owner @{HOME}\/.cache\/kio* rw,\r\n  owner @{HOME}\/.cache\/kcookies* rw,\r\n  owner @{HOME}\/.local\/share\/kio\/** rw,<\/pre>\n<p>Here <code>owner<\/code> meaning the rule applies for the user when running the <code>transmission-qt<\/code> (usually your login account), <code>r<\/code> meaning read permission, <code>i<\/code> means inherit, <code>x<\/code> = executable permission, <code>w<\/code> write permission, and <code>k<\/code> or <code>lk<\/code> means allow file locking.<\/p>\n<p>See the <a href=\"https:\/\/bugs.launchpad.net\/ubuntu\/+source\/apparmor\/+bug\/2125314\/comments\/4\" target=\"_blank\">bug report<\/a> page for the original transmission-qt profile. <\/p>\n<p>After added the rules above, press Ctrl+S to save file and Ctrl+X to exit. Finally, <b>restart AppArmor service to apply change<\/b>.<\/p>\n<pre>sudo systemctl restart apparmor.service<\/pre>\n<h3>Option 3: Add Read\/Write Access to Other Folders<\/h3>\n<p>With the AppArmor profile, transmission in (K)Ubuntu 26.04 <b>has only read &#038; write access to user&#8217;s Downloads directory<\/b> by default!<\/p>\n<p>If you want to load torrent file from other directories, or save download in another folder, then you need to add the similar rules below.<\/p>\n<p>1. First, open terminal (or konsole) and run command to create (if not exit) and edit the config file:<\/p>\n<pre>sudo nano \/etc\/apparmor.d\/local\/transmission<\/pre>\n<p>Here I use <code>transmission<\/code> that works for all UIs, you may replace it with <code>transmission-qt<\/code> for Qt UI only, <code>transmission-gtk<\/code> for the GTK UI, or <code>transmission-daemon<\/code> for the webUI.<\/p>\n<p>2. When the file opens (in command console), add the lines below and edit accordingly:<\/p>\n<pre>owner @{HOME}\/** r,\r\nowner @{HOME}\/Videos\/ r,\r\nowner @{HOME}\/Videos\/** rw,<\/pre>\n<p>Here the rules:<\/p>\n<ul>\n<li><code>owner @{HOME}\/** r,<\/code> add ability to load torrent file from any folders or sub-folders in user HOME.<\/li>\n<li><code>owner @{HOME}\/Videos\/** rw,<\/code> &#8211; allow read and write downloads to user&#8217;s Videos folder and its sub-folders.<\/li>\n<li><code>owner @{HOME}\/Videos\/ r,<\/code> &#8211; allow read the &#8220;Video&#8221; folder itself, you may skip it while <code>owner @{HOME}\/** r,<\/code> covers it.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-rules-700x501.webp\" alt=\"\" width=\"610\" height=\"437\" class=\"aligncenter size-large wp-image-51364\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-rules-700x501.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-rules-300x215.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-rules-768x549.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/06\/transmission-rules.webp 772w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>3. Edit the rules according you need, then press Ctrl+S to save and Ctrl+X to exit nano command line text editor.<\/p>\n<p>Finally, run the command below to restart the AppArmor service:<\/p>\n<pre>sudo systemctl restart apparmor.service<\/pre>\n<p>It&#8217;s better to run <code>systemctl status apparmor.service<\/code> to verify if it&#8217;s running properly as any mis-configuration may break the service.<\/p>","protected":false},"excerpt":{"rendered":"<p>Transmission, the default BitTorrent client does not work properly in Ubuntu 26.04. Here are a few workarounds. Due to new version of the AppArmor security module, some features in the Transmission BitTorrent client do not work properly in Ubuntu since 25.04.<\/p>\n","protected":false},"author":1,"featured_media":43680,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[1081],"class_list":["post-51359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-transmission"],"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=51359"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51359\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/43680"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=51359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=51359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=51359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}