error when I try to delete an item in Sitecore
<p>So I am trying to prevent someone from copying or moving an item into a folder unless it has a certain template. I decided that I would create a custom event handler for item:created and item:moving. In the case of item:created if the item is of the wrong type I simply delete it. In the case of item:moving, I just exit out of the move operation.</p>

<p>I have the following code for the item:created event right now:</p>

<pre><code>public void OnItemCreated(object sender, EventArgs args)
    {
        var createdArgs = Event.ExtractParameter(args, 0) as ItemCreatedEventArgs;

        Sitecore.Diagnostics.Assert.IsNotNull(createdArgs, "args");
        if (createdArgs != null)
        {
            Sitecore.Diagnostics.Assert.IsNotNull(createdArgs.Item, "item");
            if (createdArgs.Item != null)
            {
                var item = createdArgs.Item;

                if (item.Parent != null)
                {
                    //see if the item is being placed under a Navigation Item type or under the Navigation folder
                    if (item.Parent.TemplateName == "Navigation Item" || item.ParentID.ToString() == "{6ED240C9-1B69-48E2-9FD9-6C45CD8ABE63}")
                    {
                        if (item.TemplateName != "Navigation Item")
                        {
                            using (new Sitecore.SecurityModel.SecurityDisabler())
                            {
                                // Delete the item, warn user
                                item.DeleteChildren();
                                item.Delete();

                                SheerResponse.Alert("Sorry, you can only add items based on the \"Navigation Item\" template here");

                            }

                        }
                    }
                }

            }
        }
</code></pre>

<p>The item does get deleted, however an error pops up with no message. Here is the stack trace:</p>

<pre><code>    Server Error in '/' Application.

    item

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.InvalidOperationException: item

    Source Error: 

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace: 


    [InvalidOperationException: item]
       Sitecore.Tasks.BaseArchiveTask.Remove() +139
       Sitecore.Tasks.ItemEventHandler.UpdateArchiving(Item item, Boolean force) +359
       Sitecore.Tasks.ItemEventHandler.OnItemCopied(Object sender, EventArgs args) +109
       Sitecore.Events.EventSubscribers.RaiseEvent(String eventName, Object[] parameters, EventResult result) +388
       Sitecore.Events.Event.RaiseEvent(String eventName, Object[] parameters) +349
       System.EventHandler`1.Invoke(Object sender, TEventArgs e) +0
       Sitecore.Data.Engines.EngineCommand`2.RaiseEvent(EventHandler`1 handlers, Func`2 argsCreator) +129
       Sitecore.Data.Engines.DataCommands.CopyItemCommand.Executed() +21
       Sitecore.Data.Engines.EngineCommand`2.Execute() +173
       Sitecore.Data.Managers.ItemProvider.CopyItem(Item source, Item destination, Boolean deep, String copyName, ID copyId) +783
       Sitecore.Data.Managers.ItemManager.CopyItem(Item source, Item destination, Boolean deep, String copyName, ID copyId) +182
       Sitecore.Workflows.WorkflowContext.CopyItem(Item item, Item destination, String copyName, ID copyID, Boolean deep) +127
       Sitecore.Workflows.WorkflowContext.CopyItem(Item item, Item destination, String copyName) +173
       Sitecore.Shell.Framework.Pipelines.CopyItems.CopyItem(Item target, Item itemToCopy) +135
       Sitecore.Shell.Framework.Pipelines.CopyItems.Execute(CopyItemsArgs args) +293

    [TargetInvocationException: Exception has been thrown by the target of an invocation.]
       System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
       System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +128
       System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +146
       Sitecore.Pipelines.Processor.Invoke(PipelineArgs args) +364
       Sitecore.Nexus.Pipelines.NexusPipelineApi.Resume(PipelineArgs args, Pipeline pipeline) +297
       Sitecore.Web.UI.Sheer.ClientPage.ResumePipeline() +224
       Sitecore.Web.UI.Sheer.ClientPage.OnPreRender(EventArgs e) +779
       Sitecore.Shell.Applications.ContentManager.ContentEditorPage.OnPreRender(EventArgs e) +24
       System.Web.UI.Control.PreRenderRecursiveInternal() +107
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7675
</code></pre>

<p>Does anyone have any idea what is causing this?</p>

<p>Thanks.</p>