France were denied a seventh consecutive victory by Croatia on Tuesday, following a 0-0 draw between the sides in their friendly match at the Stade de France.
Visiting striker Ivan Perisic was denied by France goalkeeper Hugo Lloris in the best chance of the first half, while centre-back Adil Rami hit the woodwork for the hosts in the second period.
Franck Ribery, meanwhile, was jeered by the home fans as he made his first France appearance on home soil since being banned by the French Football Federation for his role in France's World Cup training ground strike last year.
"There were some whistles but it's normal," said Ribery.
"After that the fans reacted well and that gave me confidence in myself. I wasn't really tense, I just wanted to show that I was happy to be there."
The performance will leave France coach Laurent Blanc with lingering doubts about his side's attacking capacity, following a laboured 2-0 win at minnows Luxembourg in their Euro 2012 qualifier last Friday.
The pinpoint passing of Luka Modric meant that Croatia always looked dangerous in possession, but France saw most of the chances in a first half that never quite caught fire.
Blaise Matuidi, starting in place of Yoann Gourcuff, shot wide from 25 yards, while Rami headed off-target from Samir Nasri's left-wing centre.
Nasri then bent a free-kick narrowly wide of the right-hand upright, before Karim Benzema squandered France's first real opportunity when he side-footed Jeremy Menez's low cross well over the bar.
Croatia's clearest sight of goal had seen a Darijo Srna shot blocked by Rami, but they gave the hosts a fright in the 42nd minute.
Perisic found himself one-on-one with Lloris after shrugging off Philippe Mexes on the Croatia right, but the Lyon goalkeeper showed sharp reactions and a strong wrist to push the ensuing shot away with his right hand.
Benzema prodded wide with his left foot following a neat exchange with Menez in first-half injury-time, but the half-time whistle sounded with France having failed to register a shot on target.
Anthony Reveillere rectified that statistic early in the second half, obliging substitute goalkeeper Stipe Pletikosa to fist away a deflected drive.
Ribery emerged as a 60th-minute substitute for Florent Malouda and was roundly booed as he trotted onto the pitch.
The boos resumed with Ribery's every touch but the home fans nearly had something to celebrate when Rami skipped past Josip Simunic before bending a delicate shot onto the right-hand post from the edge of the area.
Ribery's entrance appeared to give France greater thrust in the final third but a breakthrough would not come.
Substitute Loic Remy was sent clean through with five minutes to play but he hesitated, miscued his attempt to round Pletikosa and allowed the Croatia goalkeeper to save.
Rami roused the home fans with a spectacular overhead kick in injury time but he landed heavily on his shoulder and had to be stretchered off, as an underwhelming night ended on a sour note for France.