5

I recently migrated a site and some nodes don't appear in the content list but they do appear in Views I've created. When they're clicked however (example.com/node/123) it just returns a Page not found.

The node is in the database, both in the node table and the node_revisions as well as the relevent CCK tables.

What could possibly be causing this?

  • Do you use i18n? There is similar situation when someone create a node in one language, but the administration theme language is another. – john Jun 14 '11 at 21:58
  • If I do use it, what can be done to fix this? – Karl Jóhann Jun 15 '11 at 11:40
  • I am having the same issue. The odd thing is that I didn't perform any action at all before the problem happened. Perhaps the hosting server did an update that messed up Drupal; I'm currently hosted by Dreamhost. Do you have the same hosting provider? – user5074 Jan 19 '12 at 21:09
  • No, I host it myself. – Karl Jóhann Jan 25 '12 at 14:39
  • Try re-saving the problem nodes. I have the same issue after I migrated some content over (although we're on D7...). Some pages would give 404 even though I see them in the system and they're published. – Johnathan Elmore Jun 11 '12 at 17:58
2

I had this problem, it only affected certain nodes. When investigated in db all values corresponded between node and node revisions tables so I initially assumed it wasn't related to values in those tables. Checked url_alias table and all seemed well there too, site is multilingual so checked the variables table for discrepancies between multilingual paths auto values for custom content types and all was also well. Rebuilding the menu router didn't help either. I already tried resetting all node access permissions as suggested here. Honestly I was just about out of ideas, then thankfully I came across this post :D The problem had come from where i had imported some node content from a custom module i wrote to ingest nodes from xml (which worked fine) but since the import was done the user account which had done the import had been removed. This meant all the multilingual imported nodes were still linked to that, now non-existent user account's uid. A simple sql query in phpmyadmin set all my nodes to be owned by admin (uid:1)

UPDATE node set uid = 1; UPDATE node_revisions set uid = 1;

This fixed my perplexing issue. I propose a patch so that if a user account is removed Drupal optionally checks all nodes belonging to that user and updates them to uid: 1 so nodes added by a deleted user account aren't suddenly inaccessible to the rest of the site including uid 1 (admin). This was frustrating as a sensible sort would naturally assume that uid 1 will always have view/edit access to any node content on the site regardless of if it is, disabled, enabled or added by some mugwump. I wish you good Drupaling!

  • I have had the same problem, deleting a user associated with a node made the node completely inaccessible. Thank you! – Sam Aug 14 '12 at 11:35
1

In most of the cases this is a conflict with permissions, so go to admin/content/node-settings/rebuild and rebuild the permissions.

This happens when you test some access modules and they're not correctly uninstalled, also take notice that views not always uses the same permissions this is why you can see your node in views but not in node/123.

Also if you don't have any access module installed and the rebuild doesn't work, have a look in your database and execute the following queries:

TRUNCATE TABLE node_access;
INSERT INTO node_access VALUES (0, 0, 'all', 1, 0, 0);

This should also fix it.

You can try to install Devel and use the Devel Node Access module shiped with it on the node to analyze the problem.

  • I would love to be able to say that that fixed it, but it didn't. Useful to know though. – Karl Jóhann Jun 14 '11 at 16:23
  • @Karl can you try with devel node access to see if something weird is occuring ? Also in admin (uid 1) there's no problem right ? – tostinni Jun 14 '11 at 18:57
  • @Karl what's inside the node_access table ? – tostinni Jun 14 '11 at 19:05
  • The node access module won't show anything in a Page not found page. It doesn't matter what user I'm using, it's all the same. I'm normally logged in as admin. – Karl Jóhann Jun 14 '11 at 19:09
  • 1
    @Karl you tag it migration, did you move your site to another server ? Is the .htaccess still there ? Have you rebuild the menu ? Can you try to run update.php, see drupal.org/node/262892 – tostinni Jun 14 '11 at 19:17
1

It could be the database doesn't contain anymore the information about the account used to create the node.

0

This will be your problem

What you need to do is go to www.yourdomain.tld/admin/structure/pages ensure that these are all disabled and then the problem should be resolved unless you've deleted critical system files that Drupal requires in that case go and re-download the distribution of Drupal and then upload to your host and extract files then move them to overwrite the current ones that are there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.