Hmmm compatible seems to be working fine for my test addon...
just changing compatibility (it was previously at some 6.x release)
Code:
curl -H "x-api-token: <token>" -F "id=8163" -F "version=1234567899" -F "compatible=9.0.1" https://api.wowinterface.com/addons/update
This seems to be working for me.
What happens if you just only set the compatible tag? Wonder if something related to the changelog is messing up the setting of the compatible version?
Code:
curl -H "x-api-token: <your token>" -F "id=24849" -F "compatible=9.0.1" https://api.wowinterface.com/addons/update
I don't seem to be getting a double changelog either.
Code:
curl -H "x-api-token: <token>" -F "id=8163" -F "changelog=This is a test" https://api.wowinterface.com/addons/update
Maybe you need to cat out the .txt instead $(cat /path/to/changelog.txt)? I'll try doing it the way you are doing it and see if I can reproduce the issue.