An apparatus (100, 200, 300, 400) comprising: a printhead assembly (102, 330, 332) containing: a housing; a printhead supported on the housing, the printhead having nozzles that are to fire droplets of a functional agent onto a layer of build material particles (114, 306) along respective flight paths to form sections of a three-dimensional object from the build material particles; an array of light emission devices to direct respective light beams in the respective flight paths; an array of photon detectors (124, 420), wherein each photon detector of the array of photon detectors is to detect a light beam directed from a light emission device of the array of light emission devices, the light emission devices and the photon detectors (124, 420) being supported on the housing; and a controller (130, 350, 402) to: receive signals from the photon detectors; determine whether any of the nozzles failed to fire a droplet as intended based upon the received signals; and output an instruction regarding a malfunctioning nozzle in response to a determination that the malfunctioning nozzle failed to fire a droplet as intended; the apparatus (100, 200, 400) being characterized in that the controller is further configured to determine that a nozzle has failed to fire a droplet as intended by determining that a nozzle has failed to fire a droplet as intended in response to a received signal indicating that a composition of a detected droplet is improper. a printhead assembly (102, 330, 332) containing: a housing; a printhead supported on the housing, the printhead having nozzles that are to fire droplets of a functional agent onto a layer of build material particles (114, 306) along respective flight paths to form sections of a three-dimensional object from the build material particles; an array of light emission devices to direct respective light beams in the respective flight paths; an array of photon detectors (124, 420), wherein each photon detector of the array of photon detectors is to detect a light beam directed from a light emission device of the array of light emission devices, the light emission devices and the photon detectors (124, 420) being supported on the housing; and a housing; a printhead supported on the housing, the printhead having nozzles that are to fire droplets of a functional agent onto a layer of build material particles (114, 306) along respective flight paths to form sections of a three-dimensional object from the build material particles; an array of light emission devices to direct respective light beams in the respective flight paths; an array of photon detectors (124, 420), wherein each photon detector of the array of photon detectors is to detect a light beam directed from a light emission device of the array of light emission devices, the light emission devices and the photon detectors (124, 420) being supported on the housing; and a controller (130, 350, 402) to: receive signals from the photon detectors; determine whether any of the nozzles failed to fire a droplet as intended based upon the received signals; and output an instruction regarding a malfunctioning nozzle in response to a determination that the malfunctioning nozzle failed to fire a droplet as intended; the apparatus (100, 200, 400) being characterized in that the controller is further configured to determine that a nozzle has failed to fire a droplet as intended by determining that a nozzle has failed to fire a droplet as intended in response to a received signal indicating that a composition of a detected droplet is improper. receive signals from the photon detectors; determine whether any of the nozzles failed to fire a droplet as intended based upon the received signals; and output an instruction regarding a malfunctioning nozzle in response to a determination that the malfunctioning nozzle failed to fire a droplet as intended; the apparatus (100, 200, 400) being characterized in that the controller is further configured to determine that a nozzle has failed to fire a droplet as intended by determining that a nozzle has failed to fire a droplet as intended in response to a received signal indicating that a composition of a detected droplet is improper.