This is your clue. You are accessing an atom map key while the map has the same key but in string form. Consider this:
map = %{"a" => 1}
x = map[:a] # this will yield nil
y = map.a # this will error like in your example
z = map["a"] # this will return 1 as expected
So basically, class_blueprint = params.class_blueprint fails because you don’t actually have a :class_blueprint key in your map. You only have a "class_blueprint" key.