register until it succeeds

only set if not set