Ah hah!
According to the Apache error log:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 84 bytes) in /Zend/Db/Statement/Pdo.php on line 290
So apparently Magento needs over 256MB of memory to export customers. OK the store in question has about 20,000 customers but that still sounds like quite a lot. Plus, this even happens when I filter down to a single surname. My guess is it's not about the size of the generated file (which needn't be held in memory all at once anyway) but that Magento is doing something grossly inefficient at the processing stage (surely not!)
I increased PHP's memory_limit to 512M and problem solved.
I hope this helps some poor wretch in future...
I found a solution, modify app.js in your skin folder and at line 153:
Change
var pointerEvent = 'touchend';
to
var pointerEvent = 'mouseover';
There is also a bug with the zoom on the product view (zoom isn't active on the first image), change line 711 from:
ProductMediaManager.createZoom($j(".no-touch .gallery-image.visible")); //set zoom on first image
to:
ProductMediaManager.createZoom($j(".gallery-image.visible")); //set zoom on first image
Of course, if you modifiy app.js, it will be overwritten in the next version and you should not do it, but hopefuly these bugs will be resolved in the next version ;)
Thanks to Alfred Stephenson => http://www.magentocommerce.com/bug-tracking/issue/index/id/308
EDIT:
The version on demo.magentocommerce.com is working correctly. The difference is in app.js, on line 189:
}).on('click', function (event) {
var elem = $j(this);
if (elem.data('has-touch')) {
elem.data('has-touch', false);
event.preventDefault();
return;
}
if(Modernizr.mq("screen and (max-width:" + bp.medium + "px)")) {
var elem = $j(this).parent();
var alreadyExpanded = elem.hasClass('menu-active');
nav.find('li.level0').removeClass('menu-active');
// Collapse all active sub-menus
nav.find('.sub-menu-active').removeClass('sub-menu-active');
if (!alreadyExpanded) {
elem.addClass('menu-active');
}
event.preventDefault();
}
change it to:
}).on('click', function (event) {
var elem = $j(this);
if (elem.data('has-touch')) {
event.preventDefault();
}
elem.data('has-touch', false);
Best Answer
I solved my problem. Don't know why but for some reason my database has some products with no (NULL) SKU. went to myphpadmin, delete those products and it works like a charm.