2022 Change Log
- Date
State
Type
Notes
12/5/2022
VA
Driver
- Error: Parsing framework logged the error "General Error Thrown: System.ArgumentException: An item with the same key has already been added."
- Cause: The state sent records with two separate problems:
1. Records containing two instances of lines with the text "RETURNED RSN" that goes into a Dictionary as the key. 2. Records containing multiple instances of "RESTRICTED" lines that goes into a Dictionary as the key.
- Solution: Refactored HandleDynamicLines to create unique key names for each instance of the text and refactored MapFields to differentiate between the different instances.
12/5/2022
WY
Registration
- Error: Parsing framework logged the error "Unexpected content found in Not On File RR"
- Cause: The state sent records beginning with the text "====== Apportioned Plate Response =====" and containing a different structure than their normal responses that parser had not yet encountered.
- Solution: Refactored the WYRRParser to detect the Apportioned Plate Response records and process them accordingly. This meant refactoring GetRRType to use function delegates, refactoring GetOriginalQuery, and adding new methods: ConfigureFunctionDelegates, HandleStaticLinesApportioned, MapFieldsApportioned, IsApportionedPlateResponse, and ParseApportionedAddress.
11/1/2022
TN
Registration
- Error: Parsing framework logged the errors "Unexpected content encountered in Holder Section" and "Unexpected Content Encountered in LienHolder Section"
- Cause: For both errors, the state sent records containing a line such as "DECAL/225 CLSCD/1021 ISSYR/1994 CO-OF-REG/State" followed by "EXP/" that the parser had not yet encountered.
- Solution: Refactored HandleHolder and HandleLienHolder to detect and process the lines "DECAL/225 CLSCD/1021 ISSYR/1994 CO-OF-REG/State" and "EXP/".
11/1/2022
LA
Driver
- Error: Parsing framework logged the error "General Error Thrown: System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string."
- Cause: The state sent records containing the line "INSUFFICIENT NAM / DOB" that the parser was unable to process, as there was no content after the NAM tag, after the /, and after the DOB tag as expected.
- Solution: Refactored GetOriginalQuery to be able to handle "INSUFFICIENT NAM" lines with or without content.
10/12/2022
SC
Registration
- Error: Parsing framework logged the error "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file. may contain unparsed Data"
- Cause: The state sent records containing the error text "3320 - Driver Record PDF generation error" that the parser configuration does not detect.
- Solution: Added the error string "3320 - Driver Record PDF generation error" to the Parsers.xml configuration file for the SC ORI.
10/5/2022
IA
Registration
- Error: Parsing framework logged the error "Organization Holder has unplaceable DOB or OLN"
- Cause: The state sent records in two categories that was causing the GetHolder method to (A) misidentify the lessee holder ID for organizations and (B) misidentify certain lessee person names and treat them as an organization, which caused the same failure as (A).
Examples: (A) ORGANIZATION NAME LLC with a SOC-OLN field having 10 digits or digits+letters. (B) LAST1 LAST2 LAST3 LAST4, FNAME (more than two name parts in the last name) and O'BRIEN, FNAME MNAME (apostrophe in last name)
- Solution: (A) In the IARRParser, refactored GetHolder to use either what GetSSN_OLN identifies as SSN or as OLN for the holder ID when the lessee is an organization, starting with SSN and, if null, then use the OLN.
(B) In the Nlets.MessageParsing.Parsers.Utilities project, ParseingUtils class, refactored IsName to include the apostrophe character in the regex for last name and refactored IsLatinName to allow for more than two name parts in the last name, with or without hyphens.
10/5/2022
NH
Driver
- Error: Discovered that the NHDRParser was not detecting and adding the record restriction caveat to PDR messages for "NEW HAMPSHIRE DRIVER STATUS RESPONSE" type DRs.
- Cause: The method DRTypeII_HandleDynamicLines was not programmed to detect the caveat containing the text "*RESTRICTED - PURSUANT TO RSA 260:14, III, ANY RECORDS RECEIVED SHALL NOT BE FURTHER TRANSFERRED..." so PDR messages did not contain the caveat in the XML (it is still always in the OriginalResponseText element).
- Solution: Refactored DRTypeII_HandleDynamicLines to detect the record restriction caveat and MapFields to add it to an AdditionalInformation element in the XML.
09/19/2022
NJ
Registration
- Error: The parser logged the error "Unexpected address format encountered (likely contains more than one comma)"
- Cause: The state sent records where the address line had multiple commas in the street address (e.g., 123 MAIN ST, APT 7, NORTH, SMALLVILLE NJ 01234) that the parser was unable to handle.
- Solution: Refactored ParseZipStateStreetCityFromAddressLine to use more robust logic for parsing the various address format the state sends. It now uses only the last comma as the delimiter between street and city/state/zip rather than string splitting as implemented previously.
09/12/2022
VA
Vehicle
- Error 1: Unexpected content encountered in HandleStaticLines
- Cause 1: The state sent records where the vehicle address line began with "VEHADDR:" tag without a space rather than the expected "VEH ADDR:" tag with a space.
- Solution 1: Refactored HandleStaticLines to detect the "VEHADDR:" tag and process accordingly.
- Error 2: General Error Thrown: System.ArgumentOutOfRangeException: Length cannot be less than zero.
- Cause 2: The state sent records where the city/state/zip line after the VEH ADDR line contained no spaces between the city, state, or zip, e.g. "LORTONVA234625500" that the parser was unable to handle.
- Solution 2: Refactored GetCustomerAddress and GetVehicleAddress to use a regular expression to process the city/state/zip line where the regex allows for spaces or no spaces between the components. Added a separate method ProcessCSZ to extract the components. Refactored MapFields to process city/state/zip lines where one or more of the components is missing altogether.
09/12/2022
KY
Driver
- Error: The parsing framework logged the error "Unexpected line encountered in dynamic content"
- Cause: The state sent records containing a line beginning with "NAME CITY EXEMPTION/" that the parser had not yet encountered.
- Solution: Refactored HandleDynamicLines to detect and process lines beginning with "NAME CITY EXEMPTION/" and MapFields to add its content to an AdditionalInformation element.
08/30/2022
ID
Registration
- Error 1: General Error Thrown: System.ArgumentException: An item with the same key has already been added. (line 544)
- Cause 1: The state sent a multi-hit/ResponseText record where the original query was by VIN which the parser had not yet seen. This caused the flag _lookForNewHit to not get set causing the parser to fail to detect the next hit.
- Solution 1: Refactored HandleMultiHit_RareUncommon to detect query by VIN and HandleIndividualHit_RareUncommon to include logic to detect hit separation for query by VIN or query by LIC/LIY/LIT.
- Error 2: General Error Thrown: System.ArgumentException: An item with the same key has already been added. (line 787)
- Cause 2: The state sent records containing multiple Registered Party blocks, each with both a physical address and a mailing address that the parser was not configured to handle.
- Solution 2: Refactored HandleRegisteredParty and HandleAddress_REGISTERED_PARTY to handle lines starting with "Mailing Address:" within the Registered Party block and refactored MapFields_RareUncommon to process mailing addresses for multiple Registered Party blocks.
- Error 3: Message marked as fullytagged XML contains a response text element that is not an indication of record not on file. may contain unparsed Data
- Cause 3: The state sent records containing an unknown error string containing "Vehicle client caught exception:" that the parser had not yet seen.
- Solution 3: Added the error string to the Parsers.xml config file for the ORI.
08/30/2022
FL
Driver
- Error: The parsing framework logged the error "The TEMP_TYPE line could not be substringed"
- Cause: The state sent records containing "TEMP TYPE LIC:" lines that contained RESTRICTION: tags that the parger was not consuming properly.
- Solution: Refactored HandleTEMP_TYPE_LIC to include the RESTRICTIONS: tag when parsing and MapFields to include the content in the resulting XML.
08/22/2022
KY
Registration
- Error: General Error Thrown: System.NullReferenceException: Object reference not set to an instance of an object.
- Cause: The state sent records where the street address contained the word "ADDRESS" (e.g., "NOT AT THIS ADDRESS") that caused the logic in GetAddressComponents to fail.
- Solution: Refactored GetAddressComponents to check that the passed-in address line contains "ADDRESS:" rather than just "ADDRESS" to detect lines more positively with the actual "ADDRESS:" tag rather than the word ADDRESS in the line.
08/22/2022
KY
Registration
- Error: Unexpected line encountered in dynamic content
- Cause: The state began sending RR messages containing a line like "CODE REG TYPE/VETERAN RENEWAL REG WEIGHT/PC010" that the parser had not yet encountered.
- Solution: Refactored HandleDynamicLines to detect and process lines beginning with "CODE REG TYPE/" and MapFields to place the information in AdditionalInformation elements in the XML.
08/15/2022
HI
Driver
- Error: Parsing framework logged the error: Not Enough Lines in the DR to Successfully parse.
- Cause: State sent records with the message "FILE IS CURRENTLY UNAVAILABLE" that the parser configuration did not recognize as a NOT ON FILE response, so it attempted to process the DR and failed.
- Solution: Added the string "FILE IS CURRENTLY UNAVAILABLE" to the NOT ON FILE strings for the HIDRParser in the Parsers.xml configuration.
08/15/2022
WV
Registration
- Error: Parsing framework logged the error "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file"
- Cause: State sent records containing an error notification string containing "TEMPORARILY UNAVAILABLE" the fully-tagged RR parser had not yet seen.
- Solution: Added the error notification string "TEMPORARILY UNAVAILABLE" to Parsers.xml for the WV ORI.
08/15/2022
CO
Registration
- Error: Parsing framework logged the error "Unexpected content encountered in dynamic lines HandleDynamicLines_NAME"
- Cause: State sent records containing the two lines "DISABLED OWNER: NO" and "DISABLED PASSENGER: NO" that the parser had not yet seen.
- Solution: Refactored HandleDynamicLines_NAME to detect and process lines containing the strings "DISABLED OWNER: NO" and "DISABLED PASSENGER: NO" and MapFields to add the information to AdditionalInformation elements in the XML.
08/15/2022
OK
Registration
- Error 1: Unexpected line encountered in dynamic content_TribalResponse
- Cause 1: The state sent records containing more lease holder lines than the parser expected.
- Solution 1: Refactored TribalResponse_HandleIndividualHit to detect and process the "STATE/" line and refactored GetRegistration to add the state as Additionalinformation as "RECORD STATE" in the returned Registration object.
- Error 2: General Error Thrown: System.ArgumentException: An item with the same key has already been added.
- Cause 2: The state sent a record with a line "2ND CITY/CLASSIC" in the Lien area that the parser had not yet seen.
- Solution 2: Refactored HandleTRIBAL_LIEN_INFO to detect lines containing "CITY/" but where the prior line did not contain "ADDRESS/" as an additional information tag and place its contents in an AdditionalInformation element in the XML.
- Error 3: General Error Thrown: System.ArgumentException: An item with the same key has already been added.
- Cause 3: State sent records where the LIEN address line containing the city/state/zip had the format "2ND ADDRESS <city <state> <zip>" instead of the expected format "1ST CITY/<city> STATE/<state> ZIP/<zip>".
- Solution 3: Refactored HandleTRIBAL_LIEN_INFO to call a new method HandleLienAddressLine that can detect and parse the two different city/state/zip formats.
- Error 4: General Error Thrown: System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
- Cause 4: The state sent NO RECORD FOUND responses for queried names that contained the string "VIN" which caused the parser to interpret the original query as having been a VIN query and try to substring using an index based on "VIN/" which did not exist, hence the indexing error.
- Solution 4:Refactored GetOriginalQuery to use the method GetFieldsAndTrim that more robustly extracts slash-delimited fields.
- Error 5: Unexpected line encountered in LIEN_INFO
- Cause 5: Same problem with the lone "STATE/" line, but it occurred after the Lien address information, so the HandleTRIBAL_LIEN_INFO method logged the error.
- Solution 5: Refactored HandleTRIBAL_LIEN_INFO to detect and process lines beginning with "STATE/" and treat them as additional information with the "RECORD STATE" name and the state as the value.
08/01/2022
AZ
Registration
- Error: General Error Thrown: Unexpected Content Encountered in LienHolder Section
- Cause: The state sent records containing more lease holder lines than the parser expected.
- Solution: Refactored TNRRParser to use a settings key "LHRLSRIndexUpperLimit" that contains an upper limit for the index of LHR/LSR tags the parser will detect. Created a method PopulateLHRLSRTags that reads the setting and creates a string array of tags the parser can use when parsing lines containing LHR/ and LSR/.
08/01/2022
AZ
Registration
- Error: General Error Thrown: System.ArgumentOutOfRangeException: Length cannot be less than zero
- Cause: The state sent VEHICLE INFO records (commerical vehicle) where the REGISTERED NAME did not contain a STATUS tag, which caused the parser substring method to fail.
- Solution: Refactored HandleCommericalVehicles to use the GetFields method on the REGISTERED NAME line which is robust against missing fields.
08/01/2022
AZ
Registration
- Error: Not enough components in ADDR Line 2 to parse.
- Cause: The state sent an address that was missing a ZIP code that the parser was unable to handle.
- Solution: Refactored HandleADDRLine2 to call PrepareCSZ which identifies the missing component in an address and replaces it with a dummy string so the address handler can parse it properly.
08/01/2022
AZ
Registration
- Error: The parsing framework logged the error: "Message marked as ResponseText payload contains either a DriverStatus, DriverMatch or a DriversHistory element parser may need updating"
- Cause: The ORI IDIDMV000 was formerly sending unstructured text DRs but is now sending structured XML DRs and needs to be moved to the FullyTaggedDRParser and the IDDRParser needs to be retired.
- Solution: Updated the Parsers.xml config file to remove the IDDRParser settings, migrate the not on file and error notification settings for the ORI IDIDMV000 to the FullyTaggedDRParser settings, and add the ORI IDIDMV000 to the FullyTaggedDRParser identification group.
07/05/2022
MT
Registration
- Error: Parsing framework logged the error "Unexpected content found in dynamic lines"
- Cause: The state sent records containing the strings "FOR PHOTO TRY OLN QUERY" and "IMG/" the parser had not yet seen.
- Solution: Refactored HandleDynamicLines to detect and process lines containing the strings "FOR PHOTO TRY OLN QUERY" and "IMG/"
07/05/2022
AZ
Registration
- Error 1: A CITY/STATE/ZIP line has incorrect number of fields
- Cause: The state sent records where the address lines had a street address, a unit/apartment number, but no subsequent city/state/zip line.
- Solution: Refactored HandleContactInformation to check the second address line for a match to the city/state/zip regular expression. If it passes, the line is C/S/Z, otherwise the parser considers it a unit/apartment line.
- Error 2: Not Enough Lines in DR to parse
- Cause: The state sent not on file records with a different structure than the parser had seen. The file contained the person's sex code and full name with a string "X - CUSTOMER NAME NOT FOU".
- Solution: Refactored HandleNotOnFile to detect the "X - CUSTOMER NAME NOT FOU" string and create a DQType with the person's sex and name so the returned DRType has the original query information. Updated Parsers.xml to detect this not on file string.
07/05/2022
CT
Registration
- Error: Parser logging the error "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file".
- Cause: State sent records with error notification strings containing "REPORT TO CONNECTICUT STATE POLICE" the fully-tagged parser had not yet seen.
- Solution: Added the error notification strings to Parsers.xml for the ORIs CTLIC0000 and CTVIN0000.
07/05/2022
AZ
Driver
- Error: Parser logging the error "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file"
- Cause: State sent records with error notification strings containing "failed due to" the fully-tagged parser had not yet seen.
- Solution: Added the error notification strings to Parsers.xml for the ORI OKDMV0000.
07/05/2022
AZ
Registration
- Error: The parsing framework logged the error "Unexpected content encountered in dynamic lines HandleDynamicLines_NAME"
- Cause: The state began sending records with a line starting with "LEIN:" the parser had not yet seen.
- Solution: Refactored HandleDynamicLines_NAME to detect lines starting with "LEIN:" and extract the start date and holder and refactored MapFields to place the information in a LienHolder object.
06/27/2022
TX
Registration
- Error 1: Unable to parse city/state/zip
- Cause: The state sent records where the address contained a comma, but the comma was not used as a delimiter between the street and city. This caused the ParseZipStateStreetCityFromAddressLine method to go down an incorrect path.
- Solution: Refactored the logic of ParseZipStateStreetCityFromAddressLine to better detect the actual address structure and process accordingly.
- Error 2: Content remaining in Fields dictionary after MapFields
- Cause: The state sent a record where the lessee name and DLN were empty, but the address line contained a comma which caused the address components to end up on the Fields dictionary which caused MapFields_TEMPTAG to log an error for keys remaining in the Fields dictionary.
- Solution: Refactored MapFields_TEMPTAG to SafeRemove the address components from the Fields dictionary when the vehicle is not leased.
06/27/2022
TX
Driver
- Error 1: Unable to extract photo type from PID field (line has no OLT)
- Cause: State sent records where the PID line did not contain OLT and the logic of HandlePID failed and records where the PID line also contained OLC that HandlePID was not expecting.
- Solution: Refactored the logic of HandlePID to process a PID line with or without OLT and/or OLC tags.
- Error 2: Unknown line in HandleCONVICTIONS
- Cause: State sent a record where the text DIGITAL ISSUE did not precede PERMIT INFORMATION, so HandleCONVICTIONS method did not know where to end.
- Solution: Refactored HandleCONVICTIONS to include PERMIT INFORMATION as a string to indicate the end of the section.
06/14/2022
AL
Registration
- Error: The parsing framework logged the error "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file. may contain unparsed Data"
- Cause: The state sends two types of DRs depending on whether the DQ requested an image or not: (A) If the DQ did not request an image, the DR is fully tagged XML and (B) If the DQ requested an image, the DR contains the binary base 64 image in an XML element, but the rest of the DR content is unstructured text, which the parsing framework was not configured to handle.
- Solution: Reconfigured the parsing framework to use an individual ALDRParser rather than the FullyTaggedDRParser. Created the ALDRParser class and updated the Parsers.xml configuration to move the ALDLR0000 ORI to the ALDRParser. Created logic in the Parser method to detect fully tagged XML or unstructured text and process accordingly. Built out all the logic to parse unstructured text, both for single hit records and multi hit records.
06/06/2022
AZ
Registration
- Error1: Not enough Lines in DR to parse
- Cause: The state sent a new type of "Continuation DR" with the second line having the text "MORE HITS ?" that the parser had not yet seen.
- Solution: Refactored IsContinuationDR to detect the presence of "MORE HIT ?" and when present, treat the record as a Continuation DR.
- Error2: the CLS/OLN/DISC line has incorrect number of fields
- Cause: The state sent records with a header line containing the text "NLETS-DL" that the parser was not configured to handle.
- Solution: Refactored IsHeaderLine so the regex allows for other text in the section after the control number.
- Error3: Unexpected Content in dynamic content
- Cause: The state sent records with the last line containing the text "IMG/" when the DR contained an image and the parser was not configured to detect and process the text.
- Solution: Refactored HandleDynamicLines to detect "IMG/" and create an Additional Information element with IMAGE INDICATOR as the key.
06/06/2022
AZ
Registration
- Error1: The ISSUED/EXPIRED line could not be substringed
- Cause: The state sent records where the CURRENT ID ISSUED line did not also have an EXPIRED field which the parser expected to be present, causing the substring map to fail.
- Solution: Refactored HandleStaticLines to include logic for the case where the CURRENT ID ISSUED line does not also contain an EXPIRES field.
- Error2: Restriction did not contain a code
- Cause: The state sent records where the RESTRICTIONS line contained a hyphen in the restriction text which caused the parser to log an error when trying to split on dash.
- Solution: Refactored HandleRESTRICTIONS to split on the string " - ", which is the actual separator between the single letter code and the text, rather than splitting on only the presence of a dash.
- Error3: The TEMP_TYPE line could not be substringed
- Cause: The state sent a record with two TEMP TYPE LIC lines and the parser was only configured to handle one such line.
- Solution: Refactored HandleTEMP_TYPE_LIC and MapFields to handle records containing multiple TEMP TYPE LIC lines.
06/03/2022
AZ
Registration
- Error: Parsing framework logged the error "Unexpected line encountered in dynamic lines"
- Cause: The state created a new RR format for what appears to be temporary tags that the parser was not configured to handle. The first date of the new format was 2022-05-25 05:55:10.073.
- Solution: Refactored GetRRType method to differentiate the type of record (regular RR, legacy RR, or temporary tag RR) based on the content of the first line, then redirect to the appropriate handler method for parsing. Created the handler "HandleStaticLines_TEMPTAG" for the temporary records.
06/02/2022
OH
Registration
- Error: User reported that the VIN line is being added to the StreetFullText element of a holder in PRR messages from OH.
- Cause: The state sent RR messages with two names, but only one address line. This caused the parser to treat the VIN/... line as an address line for the second holder.
- Solution: Refactored the logic in HandleStaticLines to detect the presence of the VIN/... line before treating the line as an address.
05/23/2022
CA
Driver
- Error: "Unexpected line encountered in dynamic content"
- Cause: The state sent records containing what looks like a discontinued OLN, e.g., "A1234567 DISCONTINUED" that the parser had not yet encountered.
- Solution: Refactored HandleDynamicLines to detect the word "DISCONTNUED" and add the OLN to an AdditionalInformation element for the DR.
05/18/2022
AZ
Driver
- Error: "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file. may contain unparsed Data"
- Cause: The parser was configured to receive fully tagged XML from the ORI USOLN0000, but the DOS Plate Lookup service sends TEXT payloads and there was no text parser available.
- Solution: Created a DR parser "USDRParser" and configured the parsing service to create parsed DR messages for DRs coming from the ORI USOLN0000.
05/18/2022
WY
Registration
- Error1: MC_CERT/MC_ISS/MC_EXP line could not be substringed
- Cause: The state sent a record containing two MEDCERT lines where one of the lines did not have the standard CERT/ISS/EXP structure the parser expected
- Solution: Refactored HandleMEDCERT to parse the MEDCERT lines using GetfieldsAndTrim instead of a substring map which expects statically-spaced characters.
- Error2 : After MORE DATA, Drivers History Date Range contains content other than dates
- Cause: The state sent a multi-hit record where the final line after "MORE DATA MAY BE AVAILABLE ON FILE!" was not structured as the parser expected.
- Solution: Refactored HandleDynamicLines to handle the case where the line after "MORE DATA..." does not contain the expected structure.
05/18/2022
AZ
Registration
- Error: "General Error Thrown: System.ArgumentException: An item with the same key has already been added."
- Cause: State sent multi-hit records with and without the string "*** MULTIPLE VEHICLES RETURNED ***" containing blocks of lines having repeated fields for each hit that the parser was not configured to handle.
- Solution: Refactored HandleStaticLines to detect and process multi-hit records, either with the *** MULTIPLE VEHICLES RETURNED *** string or without.
05/09/2022
AZ
Registration
- Error: Address line has an unrecognizable postal code (not USA or CAN) or is unparsable into street, city, state.
- Cause: The state sent records where the RESIDENCE ADDRESS contained the string "NO RESIDENT ADDRESS ON FILE" the parser had not yet encountered.
- Solution: Refactored HandleADDR to detect the string "NO RESIDENT ADDRESS ON FILE" and MapFields to place the content in an AdditionalInformation element as a caveat.
04/26/2022
NJ
Registration
- Error1: Could not identify section header. Possible new section handler needed.
- Cause: The state added a section with the header text "Transaction Status Information" that the parser had not yet encountered.
- Solution: Refactored HandleDynamicLines_NEW to include a check for the presence of the new header and created HandleTransactionStatusInformationBlock to handle the content of the block.
- Error2: Unhandled content in Additional Owner section
- Cause: The state added a DOB field to the Additional Owner section that the parser had not yet encountered.
- Solution: Refactored HandleAdditionalOwnerBlock to detect and process the DOB field in Additional Owner blocks and added the Person.DOB entry to the RRType in MapFields_NEW.
- Error3: Unhandled content in Lease Information section
- Cause: The state added a DOB field to the Lease Information section that the parser had not yet encountered.
- Solution: Refactored HandleLeaseInformationBlock to detect and process the DOB field in Lease Information blocks and added the Person.DOB entry to the RRType in MapFields_NEW.
- Error4: Unhandled content in REGISTRATION INQUIRY RESULTS section
- Cause: The state added a DOB field to the REGISTRATION INQUIRY RESULTS section that the parser had not yet encountered.
- Solution: Refactored HandleRegistrationInquiryResultsBlock to detect and process the DOB field in the REGISTRATION INQUIRY RESULTS block and added the Person.DOB entry to the RRType in MapFields_NEW.
04/26/2022
KY
Registration
- Error: User reported that the city and state are swapped in PRR messages originating from KY RR messages.
- Cause: The parsing framework had a bug that was reversing the city and state when parsing the LEASEE ADDRESS field only. The framework was processing the address line for the registration holder correctly.
- Solution: Refactored GetAddressComponents to correctly assign the city and state for the LEASEE ADDRESS line.
04/11/2022
MD
Driver
- Error: Parsing framework logged the error "Message being handled by default parser, a new parser might be needed"
- Cause: The parsing framework configuration did not contain an entry for the ORI "MDMSP0000".
- Solution: Added the ORI MDMSP0000 to the Parsers.xml configuration file for the FullyTaggedDRParser.
04/04/2022
OK
Driver
- Error: OK DR
- Cause: State sent records containing "FAIL Connection reset" that the parser had not yet seen.
- Solution: Added the error notification text to Parsers.xml for the ORI.
04/04/2022
VA
Registration
- Error: General Error Thrown: System.IndexOutOfRangeException: Index was outside the bounds of the array.
- Cause: The state sent records where the LIY and ISS fields had no slashes in their dates which the parser previously expected.
- Solution: Created a method HandleLIC_LIY_ISS that can handle LIY and ISS dates with or without slashes. Refactored HandleStaticLines to call the new method.
04/04/2022
VA
Registration
- Error: Unexpected content encountered in HandleStaticLines
- Cause: The state sent records with multiple owner names that spilled to a second line when the parser expected all names on one line.
- Solution: Refactored HandleStaticLines to have logic that detects the presence of owner names on multiple lines.
04/04/2022
VA
Registration
- Error: Unexpected content encountered in HandleStaticLines
- Cause: The state sent records containing customer impairment caveat lines the parser had not yet encountered.
- Solution: Refactored HandleStaticLines to detect lines that start with "CUS IMP/" and any subsequent lines that contain impairment information.
04/04/2022
VA
Registration
- Error: Unexpected content encountered in Handle_HolderOnlyRecord
- Cause: The state sent records containing a line with a single letter ("D") the parser was unable to handle.
- Solution: Refactored HandleHolderOnlyRecord to detect lines containing a single upper-case letter.
03/28/2022
OK
Driver
- Error: Message marked as fullytagged XML does not contain a DriverStatus or DriverMatch element
- Cause: State sent records containing "INTERNAL_ERROR" and "FAIL Timeoutconnect timed out" that the parser had not yet seen.
- Solution: Added the error notification text to Parsers.xml for the ORI.
03/14/2022
CA
Registration
- Error: General Error Thrown: System.ArgumentException: An item with the same key has already been added.
- Cause: The state sent a record with vessel information in a different location than the parser expected.
- Solution: Refactored HandleDynamicLines to change the logic for detecting vessel information.
03/14/2022
CA
Registration
- Error: Unexpected line encountered in dynamic content.
- Cause: The state sent records containing text the parser had not yet seen: "EXPORTED TEMPORARILY" and "MULTIPLE MOBILEHOME ADDITIONAL VINS:".
- Solution: Refactored HandleDynamicLines to detect and process the new text into AdditionalInformation elements.
03/14/2022
CA
Registration
- Error: Conflicting Lessors reported. Going with first one.
- Cause: The state sent a record where the Lessee "NAME:" line ended in LSR but without a comma which the parser expected.
- Solution: Refactored HandleLESSEE_INFORMATION to include lines that end with "LSR" (no comma) when extracting the Lessee name.
03/1/2022
IL
Registration
- Error: User has reported that the parser is truncating the street number from certain addresses.
- Cause: When the state sends records where the street address contains a period, e.g. 123 N. MAIN ST, the parsing framework was incorrectly removing everything before the period, leaving an incomplete street address.
- Solution: Refactored the regular expression in HandleStandardResponse to additionally detect the characters '.', '-', and '&' as being part of the street address.
03/1/2022
MD
Registration
- Error: The parsing framework logged the error "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file. may contain unparsed Data".
- Cause: State sent records containing "Unexpected response from:" that the parser had not yet seen.
- Solution: Added the error notification text to Parsers.xml for the ORI.
03/1/2022
NM
Driver
- Error: The parsing framework logged the error "Message marked as fullytagged XML does not contain a DriverStatus or DriverMatch element".
- Cause: State sent records containing "UNKNOWN EXCEPTION WAS ENCOUNTERED" that the parser had not yet seen.
- Solution: Added the error notification text to Parsers.xml for the ORI.
02/22/2022
OK
Driver
- Error: The parsing framework logged the error "Message being handled by default parser, a new parser might be needed".
- Cause: The state changed from sending TEXT DRs to sending NIEM XML DRs and changed the send ORI from OK00000MS to OKDMV0000. The last DR from the old ORI OK00000MS was at 2022-02-21 08:18:15.753. The first DR from OKDMV0000 was at 2022-02-21 08:18:46.750.
- Solution: Modified the parsing framework configuration to convert OK DRs to NIEM format for the new ORI OKDMV0000.
02/22/2022
PR
Registration
- Error: Parsing framework logged the error "Unexpected content encountered in dynamic lines".
- Cause: The state sent records containing an error notification string the parser had not yet encountered.
- Solution: Refactored Parse to include isStateErrorNotification in the logic to call HandleOriginalQuery. Refactored HandleOriginalQuery and HandleStaticLines to detect a new header string the state began using. Refactored HandleStaticLines to continue when isStateErrorNotification is set.
02/22/2022
TX
Driver
- Error: Parsing framework logged the error: "General Error Thrown: System.ArgumentException: An item with the same key has already been added."
- Cause: The state sent records where the OWNER address line contained the key words "TITLE" and "R-" that have other meanings to the parser which caused it to take an incorrect logic path.
- Solution: Refactored HandleStaticLines to improve the logic for detecting an actual TITLE line versus an address containing the word TITLE and for more positively detecting an "R-" record by adding the requirement of the record starting with "R-{MMM}/" where MMM is one of the 12-month abbreviations.
02/18/2022
TX
Driver
- Error: The parsing framework logged the error "Message being handled by default parser, a new parser might be needed"
- Cause: The state changed from TEXT format to NIEM format.
- Solution: Modified the parsing framework configuration to convert WV to NIEM format.
02/15/2022
TX
Registration
- Error: The parsing framework logged the error "Unexpected line encountered in dynamic content (HandleDynamicLines)"
- Cause: The state began sending records containing a "SECONDARY EMERGENCY CONTACT" block the parser had not encountered.
- Solution: Refactored HandleDynamicLines to detect and process the SECONDARY EMERGENCY CONTACT block and refactored Handle_EMERGENCY_CONTACT to process both PRIMARY and SECONDARY emergency contact blocks.
02/15/2021
TX
Driver
- Error: The parsing framework logged the error "Unexpected line encountered in dynamic content (HandleDynamicLines)"
- Cause: The state began sending records that begin with four lines consisting of an emergency contact information caveat that the parser had not yet encountered. One such record also contained a "PRIMARY EMERGENCY CONTACT" block the parser had not encountered.
- Solution: Refactored HandleStaticLines to parse the emergency contact caveat lines and HandleDynamicLines to detect and process the PRIMARY EMERGENCY CONTACT block.
01/27/2022
IA
Registration
- Error: The parsing framework logged the error "Unexpected line encountered in dynamic content (HandleDynamicLines)"
- Cause: The state began sending records that begin with four lines consisting of an emergency contact information caveat that the parser had not yet encountered. One such record also contained a "PRIMARY EMERGENCY CONTACT" block the parser had not encountered.
- Solution: Refactored HandleStaticLines to parse the emergency contact caveat lines and HandleDynamicLines to detect and process the PRIMARY EMERGENCY CONTACT block.
01/18/2022
ID
Registration
- Error: Parsing framework logged the error "Message marked as fullytagged XML contains a response text element that is not an indication of record not on file. may contain unparsed Data"
- Cause: The state sent records with error notification strings containing the content "Error while fetching the Vehicle Records", "Please enter maximum of 8 characters for IDAHO Plate Number"", and "Bad response:" that the parser had not yet encountered.
- Solution: Added the error notification strings to the Parsers.xml configuration file for the ORI. Refactored the Parse method to add a check for state error notification.
01/18/2022
SD
Driver
- Error: The parsing framework logged the error "Unexpected Content Encountered in Dynamic Lines"
- Cause: The state began sending records containing the string "RESTRICTED PERMIT INITIAL ISSUED DATE:" that the parser had not yet seen.
- Solution: Refactored HandleDynamicLines to detect and process the "RESTRICTED PERMIT INITIAL ISSUED DATE:" line.
01/18/2022
NV
Registration
- Cause: State sent records containing "An error occurred while receiving" that the parser had not yet seen.
- Solution: Added the error notification text to Parsers.xml for the ORI.
01/18/2022
MD
Driver
- Cause: State sent records containing "the full last name is required" that the parser had not yet seen.
- Solution: Added the error notification text to Parsers.xml for the ORI.
01/18/2022
SC
Driver
- Cause: State sent records containing "3301 - The specified User ID does not exist" that the parser had not yet seen.
- Solution: Added the error notification text to Parsers.xml for the ORI
01/10/2022
AZ
Driver
- Error: Parsing framework logged the error "HandleSTATE_DEPARTMENTDynamicLines"
- Cause: The state began sending records containing the line "*** MEDICAL ATTESTATION ***" which the parser had not yet seen. Note: We have not yet seen records with content after this line; however, it appears related to a new WA law that went into effect Jan 1, 2022, that allows drivers to add medical designators to their DLs, so we will likely see records with content after this line in the future.
- Solution: Refactored HandleSTATE_DEPARTMENTDynamicLines to detect and process the new medical attestation string.
01/03/2022
AZ
Registration
- Error: Parsing framework logged the error "General Error Thrown: System.ArgumentException: An item with the same key has already been added."
- Cause: The state began sending records with a line containing "SPECNEED/" after each owner name that the parser had not yet seen which caused the HandleDynamicLines method to attempt to add an item with the same key to a dictionary.
- Solution: Refactored HandleHolder to detect and process the new "SPECNEED/" line and MapFields to put the content in an AdditionalInformation element for each owner.
01/03/2022
TN
Registration
- Error: Parsing framework logged the error "General Error Thrown: System.ArgumentException: An item with the same key has already been added."
- Cause: The state began sending records with a line containing "SPECNEED/" after each owner name that the parser had not yet seen which caused the HandleDynamicLines method to attempt to add an item with the same key to a dictionary.
- Solution: Refactored HandleHolder to detect and process the new "SPECNEED/" line and MapFields to put the content in an AdditionalInformation element for each owner.