Hi there all experts.
I am brand new to write crm plugins, but I am trying to do my best.
I have written a plugin on preopration stage , on close message of incident.

I know I should get incident record from incident resolution record.

I can retrieve other fields of incident according to the below code, but I can not get onholdtime field( duration of being on-hold in minute )of incident.
Here is the code I retrieve and display createdon field.

            IPluginExecutionContext context = (IPluginExecutionContext)
               serviceProvider.GetService(typeof(IPluginExecutionContext));
            // Get a reference to the Organization service.
            IOrganizationServiceFactory servicefactory =
                (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = servicefactory.CreateOrganizationService(context.UserId);
            DateTime actualEnd = DateTime.Now;
            if (context.InputParameters.Contains("IncidentResolution"))
            {
                Entity incidentResolution = (Entity)context.InputParameters["IncidentResolution"];
                Guid guid = ((EntityReference)incidentResolution.Attributes["incidentid"]).Id;
                if (incidentResolution.Contains("actualend"))
                {
                    actualEnd = (DateTime)incidentResolution.Attributes["actualend"];
                }
                Entity retrievedIncident = service.Retrieve("incident", guid, new ColumnSet("ms_resolvedatetime", "createdon", "onholdtime"));
                DateTime createdOn = (DateTime) retrievedIncident.Attributes["createdon"];
                // int onHoldInMinute = (int) retrievedIncident.Attributes["onholdtime"];
                retrievedIncident.Attributes["ms_resolvedatetime"] = actualEnd;
                throw new
                     InvalidPluginExecutionException(string.Format("createdon: {0}",
                     createdOn.ToString()));

It returns the createdon field value via throwing an exception.

But when I uncomment the line :

int onHoldInMinute = (int) retrievedIncident.Attributes["onholdtime"];

I give me this error, with meaning that there is no field with this key/name.

<Message>System.Collections.Generic.KeyNotFoundException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #2D66D0C6</Message>

This message is like the plugin can not find the onholdtime,
what is wrong?