public async Task <bool> UpdateRow(MembershipEntry entry, string etag, TableVersion tableVersion) { try { if (logger.IsEnabled(LogLevel.Debug)) { logger.Debug("UpdateRow entry = {0}, etag = {1}, table version = {2}", entry.ToFullString(), etag, tableVersion); } var siloEntry = Convert(entry, tableManager.DeploymentId); var versionEntry = tableManager.CreateTableVersionEntry(tableVersion.Version); bool result = await tableManager.UpdateSiloEntryConditionally(siloEntry, etag, versionEntry, tableVersion.VersionEtag); if (result == false) { logger.Warn((int)TableStorageErrorCode.AzureTable_24, $"Update failed due to contention on the table. Will retry. Entry {entry.ToFullString()}, eTag {etag}, table version = {tableVersion} "); } return(result); } catch (Exception exc) { logger.Warn((int)TableStorageErrorCode.AzureTable_25, $"Intermediate error updating entry {entry.ToFullString()} tableVersion {(tableVersion == null ? "null" : tableVersion.ToString())} to the table {tableManager.TableName}.", exc); throw; } }