The Duke, who was due to join the Queen at a gala reception for the Royal National Institute of Blind People (RNIB) at St James’s Palace, was said to be “unwell” and pulled out at the last minute.
A Buckingham Palace spokeswoman said: “The Duke is unwell, but he will be at the service tomorrow.”
She had no details of the Duke’s illness.
The Queen enjoyed performances by West End star Michael Ball and operatic quartet Il Divo.
Ball sang People, from the musical Funny Girl.
“I thought it appropriate for the event,” he said before the reception.
“I have sung for the Queen on various occasions, including when we did a version of Les Miserables at Windsor Castle a few years ago to mark the centenary of the Entente Cordiale with France.
“This is a great cause.”
Il Divo performed a Spanish version of Leonard Cohen’s Hallelujah.
One of the group, Urs Buhler, from Switzerland, said afterwards: “It was an unusual performance for us, in such an intimate room. This was the fourth or fifth time we have performed in front of the Queen - we have done the Royal Variety Performance two or three times.”
Another star attending - but not singing this year, though he has done so at the event before - was Rod Stewart, with wife Penny Lancaster. Both are vice presidents of RNIB.
Stewart said he had been suffering from a virus.
“I’m feeling great and my show at the O2 tomorrow will go ahead,” he said.
“I’ve sung at this event before - mostly the standards, but Maggie May too - and would like to sing here again in the future.”
His wife added: “I think it was Rod’s performance a few years ago that has sparked all these performances from other artists.”
Downton Abbey creator and RNIB supporter Julian Fellowes said the organisation was a “shining example of all that is best in the charity sector”.
He told the Queen: “In recognising the work of the charity by your presence you have made us all very proud.”
The Queen has been the patron of RNIB since her accession to the throne in 1952.