403 Error when pushing as "external" user over https


We have several external devs (their account is marked as “external”) and one of them tried to push his changes over https (not ssh). The user has been manually added to the project as a “developer” without an expiration date. The repository is set to “private”.
He can pull from the project, switch to the branch (let’s call it “ext-branch”) but when he tries to push, he always receives a 403 error. He does not have an SSH key in his profile but as he does not use SSH, it shouldn’t mattet. At first the master branch was protected (but no other branch) but even without this protection, it does not work.

Does someone have an idea what the issue could be?

GitLab 8.15.2