diff --git a/lib/private/Server.php b/lib/private/Server.php
index 48ee4b27d32ede5d5538367053df720b4fb27bb2..392b2b17b9c28a418ef112137d1a2edd33349668 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -313,7 +313,8 @@ class Server extends ServerContainer implements IServerContainer {
 			return new AvatarManager(
 				$c->getUserManager(),
 				$c->getRootFolder(),
-				$c->getL10N('lib')
+				$c->getL10N('lib'),
+				$c->getLogger()
 			);
 		});
 		$this->registerService('Logger', function (Server $c) {
diff --git a/lib/private/avatar.php b/lib/private/avatar.php
index 8ed920c9b18e2ab63517a12a03af03a217e51493..4b9d3d824046edb14cc0d2c832e2c115acb053cd 100644
--- a/lib/private/avatar.php
+++ b/lib/private/avatar.php
@@ -31,10 +31,12 @@ use OC\User\User;
 use OCP\Files\Folder;
 use OCP\Files\File;
 use OCP\Files\NotFoundException;
+use OCP\Files\NotPermittedException;
 use OCP\IAvatar;
 use OCP\IImage;
 use OCP\IL10N;
 use OC_Image;
+use OCP\ILogger;
 
 /**
  * This class gets and sets users avatars.
@@ -47,6 +49,8 @@ class Avatar implements IAvatar {
 	private $l;
 	/** @var User */
 	private $user;
+	/** @var ILogger  */
+	private $logger;
 
 	/**
 	 * constructor
@@ -54,11 +58,13 @@ class Avatar implements IAvatar {
 	 * @param Folder $folder The folder where the avatars are
 	 * @param IL10N $l
 	 * @param User $user
+	 * @param ILogger $logger
 	 */
-	public function __construct (Folder $folder, IL10N $l, $user) {
+	public function __construct (Folder $folder, IL10N $l, $user, ILogger $logger) {
 		$this->folder = $folder;
 		$this->l = $l;
 		$this->user = $user;
+		$this->logger = $logger;
 	}
 
 	/**
@@ -164,8 +170,12 @@ class Avatar implements IAvatar {
 			if ($size !== -1) {
 				$avatar->resize($size);
 			}
-			$file = $this->folder->newFile($path);
-			$file->putContent($avatar->data());
+			try {
+				$file = $this->folder->newFile($path);
+				$file->putContent($avatar->data());
+			} catch (NotPermittedException $e) {
+				$this->logger->error('Failed to save avatar for ' . $this->user->getUID());
+			}
 		}
 
 		return $file;
diff --git a/lib/private/avatarmanager.php b/lib/private/avatarmanager.php
index 3b619cda574bcb5b3f91ff85b8e7e6e49d5aa407..62f4faf436cbf73d666fe51be7a03b04152c8e79 100644
--- a/lib/private/avatarmanager.php
+++ b/lib/private/avatarmanager.php
@@ -28,6 +28,7 @@ namespace OC;
 use OCP\Files\Folder;
 use OCP\Files\NotFoundException;
 use OCP\IAvatarManager;
+use OCP\ILogger;
 use OCP\IUserManager;
 use OCP\Files\IRootFolder;
 use OCP\IL10N;
@@ -46,20 +47,26 @@ class AvatarManager implements IAvatarManager {
 	/** @var IL10N */
 	private $l;
 
+	/** @var ILogger  */
+	private $logger;
+
 	/**
 	 * AvatarManager constructor.
 	 *
 	 * @param IUserManager $userManager
 	 * @param IRootFolder $rootFolder
 	 * @param IL10N $l
+	 * @param ILogger $logger
 	 */
 	public function __construct(
 			IUserManager $userManager,
 			IRootFolder $rootFolder,
-			IL10N $l) {
+			IL10N $l,
+			ILogger $logger) {
 		$this->userManager = $userManager;
 		$this->rootFolder = $rootFolder;
 		$this->l = $l;
+		$this->logger = $logger;
 	}
 
 	/**
@@ -85,6 +92,6 @@ class AvatarManager implements IAvatarManager {
 		/** @var Folder $folder */
 		$folder = $this->rootFolder->get($dir);
 
-		return new Avatar($folder, $this->l, $user);
+		return new Avatar($folder, $this->l, $user, $this->logger);
 	}
 }
diff --git a/tests/lib/avatartest.php b/tests/lib/avatartest.php
index e7d783110851317e8c4cfbe6c960fc83ce13c4a6..b2b69ac1a6c3a51e0a606902f4036ad9b49530e0 100644
--- a/tests/lib/avatartest.php
+++ b/tests/lib/avatartest.php
@@ -27,7 +27,7 @@ class AvatarTest extends \Test\TestCase {
 		$l = $this->getMock('\OCP\IL10N');
 		$l->method('t')->will($this->returnArgument(0));
 		$this->user = $this->getMockBuilder('\OC\User\User')->disableOriginalConstructor()->getMock();
-		$this->avatar = new \OC\Avatar($this->folder, $l, $this->user);
+		$this->avatar = new \OC\Avatar($this->folder, $l, $this->user, $this->getMock('\OCP\ILogger'));
 	}
 
 	public function testGetNoAvatar() {