Error using Differential Equations and Unitful

I really appreciate the detailed reply. I wasn’t aware of the concept of concrete types but that seems to be a very likely source of the issue. I don’t think a missing unit is the issue because I can strip the units from ever appearing in the ODEProblem and everything runs perfectly:

function rocket!(du, u, p, t)
	ρ = ρ_altitude(u[1]) # calculate air density at current altitude
	drag = Fd(u[2]*u"m/s", ρ) # calculate drag force at current air density

	F = thrust - drag

	du[1] = u[2] 
	du[2] = F / mass |> x -> ustrip(u"m/s^2", x) # ẍ = (thrust - drag) / mass	
end

Here is the full code with all the units in place that isn’t currently working:

using Unitful
using DifferentialEquations

function ρ_altitude(height)
	"""
    https://www.grc.nasa.gov/www/k-12/airplane/atmosmet.html
	Calculate ρ as a function of altitude
	"""

	h = ustrip(u"m", height) # The units on the following equations don't make sense
	
	if h < 11000
		T = 15.04 - .00649h
		P = 101.29 * ((T + 273.1) / 288.08)^5.256
	elseif h < 25000
		T = -56.46
		P = 22.65 * exp(1.73 - .000157h)
		
	else
		T = -131.21 + .00299 * h 
		P = 2.488 * ((T + 273.1) / 216.6)^-11.388
	end
	
	P = P
	T = (T + 273.15)
	
	return P / .2869T * u"kg/m^3"
end

d = 2.5u"m" # max diameter Soyuz 7k wikipedia

A = π * d^2 / 4

Cd = .82

Fd(v,ρ) = Cd * .5 * ρ * A * v^2  |> u"N"

u0 = [0.01u"m", 0.01u"m/s"]

tspan = (0.01u"s", 118.0u"s") # Time for first stage

thrust = 846000u"lbf" |> u"N"

function rocket!(du, u, p, t)
	ρ = ρ_altitude(u[1])
	D = Fd(u[2], ρ)

	F = thrust - D

	du[1] = u[2] # x' = ẋ
	du[2] = F / 300000u"kg" # ẍ = (thrust - drag) / mass	
end

prob = ODEProblem(rocket!, u0, tspan)

sol = solve(prob)

I’ve tried setting the initial conditions to something non-zero to see if that would help but it has not I am still getting the ArgumentError: zero(Unitful.Quantity{Float64}) not defined from my original post.