probably because you don't know the revision yet at this point; the baseclient puts to the local storage, and then the sync cycle transports it from there to remote. the remote server will assign a revision, and return it in an ETag header (which btw we're not using atm, i opened https://github.com/remotestorage/remotestorage.js/issues/545 about that)