Date: 201701
Local time of day: 0601-1200
Location: ZZZ.Airport, US
Flight conditions: IMC
Weather elements / visibility: Icing; Turbulence
Light: Daylight
Aircraft: Regional Jet 900 (CRJ900)
Operator: Air Carrier
Operating under: Part 121
Flight plan: IFR
Mission: Passenger
Flight phase: Initial Approach
Airspace: Class B ZZZ
ATC / advisory: TRACON ZZZ
Aircraft component: Autopilot
Component problem: Malfunctioning
Reporter organization: Air Carrier
Reporter function: Pilot Flying; Captain
Reporter qualification: Flight Crew Air Transport Pilot (ATP)
Second reporter function: First Officer; Pilot Not Flying
Anomaly: Aircraft Equipment Problem Less Severe; Deviation - Altitude Overshoot; Deviation / Discrepancy - Procedural Published Material / Policy
Detector: Person Flight Crew
When detected: In-flight
Result: Air Traffic Control Issued Advisory / Alert; Flight Crew Became Reoriented; Flight Crew Returned To Clearance
Contributing factors: Aircraft; Human Factors
Primary problem: Human Factors

Narrative: This flight started in ZZZ under IFR conditions. We pushed off the gate and got deiced with type I and IV. We taxied out without delay from ZZZ [en route] to ZZZ1 and had no delays departing. The entire time since 1000 AGL the autopilot was on and functioning as we departed ZZZ. Upon approaching ZZZ1 we were given radar vectors for runway XXR. We were at 13000 feet and given an initial descent to 4000 ft. I the PF put the throttles to idle and spun in 250 kts into the airspeed selector. I then placed 4000 ft in the altitude pre selector and used the VS mode to set an initial descent for roughly 1500 fpm and then adjusted from there to stay on speed of 250 kts. ATC had been asking other aircraft for 250 kts and quick descent down to final altitude so I pulled the speed brake to the full position and set a VS of approximately 2.0 and adjusted from there to maintain 250 kts. Sometime during the descent we were given vector turns as well as a further descent to 3000 ft. We placed that in the altitude selector. We were roughly on base at this point and still in the descent. We then were given an intercept HDG for the final approach; and a final altitude of 2000 ft to intercept and cleared the approach. We both don't recall how high we were at this point but we both don't recall hearing a C chord chime from 3;000 to 2;000 descent. I believe I was looking at the approach plate to get information off of it when the FO stated that the autopilot was not capturing altitude. I looked back at the PFD and saw that we were currently passing through 1700 feet; we then heard a C chord; the altitude in the preselector window in the PFD was flashing yellow; and the aircraft was still descending at somewhere around 1500 fpm (not exactly sure how fast it was descending; this is an estimate based on how quick we were passing through our altitude). I disconnected the autopilot at around 1700 feet (Which is where we noticed that we were not captured by the autopilot) I rotated the aircraft into a climb to pitch back up to 2000 ft; while simultaneously pushing the throttles up to climb power; the FO stowed the spoilers as I put the throttle adjustment in. We rounded out at the bottom of the recovery somewhere around 1300-1400 ft (It happened really fast so I'm not completely sure as what the bottom of the recovery was but it was right around that 1300-1400 mark). ATC inquired on where we were and if everything was ok (they got a low altitude alert). We explained that the Autopilot did not capture the altitude and had to recover from the descent. Approaching 2000 ft I reconnected the autopilot to continue the approach as we were in IFR conditions and shooting an ILS approach. I watched the autopilot very carefully at this point; not trusting that it would come down on glide path or even hold course at this point. The Autopilot worked without issue all the way down the approach; at 500 ft AGL I disconnected it for the landing at ZZZ1. The events happened so fast because of the descent rate and the close proximity to intercept of the lateral approach; and the proximity to being only 2000 ft above the ground that the recovery from realizing the aircraft was not leveling at 2000 to power up took approximately 400 ft to reverse the direction of the descent into a climb back to the initial altitude of 2000 ft.This is a tough one because I'm really unsure why the autopilot decided not to catch the altitude. I can be assured of one thing; I will be forever vigilant in watching the box like a hawk while it is in critical phases of flight like we were. I guess I got ruled into a false sense of trust after almost 10 years of flying this airplane I have never had anything like that ever happen. I will be much more critical of watching for the altitudes at all times and limiting my 'head down' time that had distracted me during a time where I may have caught that we didn't receive the C chord and we were approaching level off. I wish I had more informationas far as what the automation was giving us at the time (such as if there was a c chord and we just missed it; and if there was or was not an alts cap message displayed). It happened so fast all I had time to do was react and get the airplane back climbing and back to altitude in the shortest amount of time possible. This has been an eye opening experience that I will not soon forget. I hope you find this report helpful; and thank you for your support through this program.Autopilot did not capture the preselected altitude of 2000 ft. We also don't remember getting a C chord to announce the 1000 foot to go.


Second narrative: [Report narrative contained no additional information.]


Synopsis: CRJ-900 flight crew reported they descended below the level off altitude when the autopilot did not capture.