title: ErrorCode -2130575305 (0x81020037) in SPItemEventReceiver with ListItem.Update()
body: <p>I'm new to Sharepoint and I'm currently maintaining an established solution which has a bug. Unfortunately I cannot solve the Problem. I get an SPException with ErrorCode 2130575305 in the ItemAdded event when I try to use the properties.ListItem.Update() Method.</p>
  
  <p>It seems like there is a Problem when updating a item shortly after it is updated?</p>
  
  <p>I tried everything I found on the Internet, from using the "ItemAdding" method over allowunsafeupdates to disableeventfiring, but nothing worked, now I ran out of steam</p>
  
  <p>A little piece of program code:</p>
  
  <pre><code>SPListitem itm = list.GetItems(query).Add();
  // all single line of text
  itm["property"] = anotheritem["property" + "something" + itm["property"]; 
  itm.Update();
  </code></pre>
  
  <p>and afterward in the overridden ItemAdded:</p>
  
  <pre><code>SPListItem itm = properties.ListItem;
  itm["anotherproperty"] = "something different";
  itm.Update(); // &lt;- this throws the error
  </code></pre>
  
  <p>The Original Error Message is in German so it won't help you much, but its saying something along "SPException, please press back in your browser and try again", which isn't of any help anyways.
  Also, I can't use try catch in code as it seems to be some sort of web exception?</p>
  
  <hr>
  
  <p>Sorry x0n, I couldn't try your answer yesterday.
  it doesn't work, unfortunately, there is no list in properties, only a listid, and even if I know which list calls the itemadded event and navigate to it through <code>lists["listname"].getitembyid(properties.listitem.id)</code> it won't work.
  isn't "grapping a fresh copy" exactly what i did by writing <code>splistitem itm = properties.listitem;</code> already?
  Is there a way to "release" the item on the beginning of the itemAdded and reuse it later?</p>
  
  <pre><code>public override void ItemAdded(SPItemEventProperties properties)
  {
  SPListItem itm = properties.ListItem;
  itm["somefield"] = "sometext";
  itm.Update(); // &lt;- error, itm.SystemUpdate() throws the same error btw.
  base.ItemAdded(properties);
  }
  </code></pre>
  
  <p>I also read the help on msdn, it only tells me the error but not how to handle it, so it wasn't much helpful.</p>
  
  <p>About brian's answer: if itemadded already is the synchronous call there shouldn't be a problem?</p>