You should move the setSuccess() call before the fireWriteComplete as we always notify the future first before fire this event in other transports