Question: I'm working on a POC project with Apache Cordova 3.0 and Sencha Touch 2.3. Things were working fine for a while but now whenever I attempt to invoke code in Cordova that calls down to my custom plugin it fails because of the error in the title.

I know for a fact that the onDeviceReady event is being fired because I listen for it and throw up an alert popup when it is received, and the alert fires every time.

Not sure what else to check or what other details to provide?

Answer: 
Actually when you use DataContract metatag, Serializable Metatag do nothing. This is a quote from MSDN article:

> 
> With [Serializable], all fields become part of the data contract (unless they are marked with [NonSerialized]). With [DataContract], only members marked with [DataMember] are included. Note that if a type has both [DataContract] and [Serializable] attributes on it, it will use the [DataContract] mapping
> 
> 
> 

<http://msdn.microsoft.com/en-us/magazine/cc163569.aspx>

KnownType atrribute Marvin described to you in a comment to your question.
The following class is a simple DTO:

```
[DataContract]
public class DataTransferObjectExample
{
    [DataMember]
    public string ExampleData { get; set; }
}

```

Everything else would be for special cases that we can only check if you post your whole code.