Hmm I think if promise gets rejected at https://github.com/silverstripe/sapphire/pull/1145/files#L0R855 then we will end up with filefield being null here, and an exception as a result. Probably would make sense to check the filefield for nullness or use `done` instead of `then`?