Sitecore content gone in web DB after publish - sitecore

I've been happily developing away on a Sitecore project for the last couple of months. This evening I did what I have done 100 times, smart published the entire site so that I could view it from the web DB as an end user.
When I navigated to the site I discovered that all of my content is gone. All rendering elements are there, but anything in the /sitecore/content tree is missing on the page. Gone. Empty. Nada.
Everything looks fine when I'm logged in and viewing in Page Editor.
I've done several smart publishes and still the same. I was going to try a republish of everything, but after reading the warning dialog I thought I'd wait until I understand what happened.
This is a pretty disconcerting thing. Any one have any ideas?

Check your root or home item , make sure it is in publishable state and check if it published. If the root item is gone your will not see anything on the site.

There are multiple things you will want to check on your root node where content is missing:
Workflow state: If there is only one version, but the workflow state was changed to a non-final version manually, it will not be published.
Publishing Restrictions Publishable state: If the 'Publishable' checkbox has been disabled for any item or version, that item/version will not publish.
Publishing Restrictions by Date: If a date-based publishing restriction has been applied to the item or versions, the item may have been removed because it is no longer in a publishable date range.

If this is on Sitecore 7.2, i think there is a bug where content items just disappear:
http://maxslabyak.com/sitecore/3-new-sitecore-v7-2-bugs-need-know-go-live/
To Fix it, set this setting Publishing.PublishEmptyItems to true
Hope this helps

Related

How to publish all versions of an item to Web DB (Sitecore 8.0+)

The end result:
After publishing an item, all versions will be visible in the WEB DB, instead of the default behaviour of only having the latest item version.
I'm using Sitecore 8.2.170407
After reading this article, I tried to do several things:
Remove both RemoveOtherVersions and PublishTestingVersions processors by doing a <patch:delete />. That did not work
Add my own patch file, which inherits Sitecore.Publishing.Pipelines.PublishVersion.Processors.RemoveOtherVersions and hides/overrides the base Process method. The new method will do nothing.
Image of patch class and Image of patch config
That didn't work either.
Tried removing the whole <publishVersion> pipeline, but that gave an exception when trying to publish an item.
I've not been able to find a solutions anywhere else. I know a similar question has been asked here, but that was in Sitecore 6
Have any of you been in the same situation before? How did you solve the issue?
If you need more information, please let me know.
Thanks in advance
You can't.
The linked answer you provide is still valid. Sitecore "web" database (any database which is a publishing target) stores one and only one version. To modify this, you're going to need to reinvent your own publishing process.
Based on your clarification, it seems what you want to use is standard Sitecore versioning with specified publish start dates to put up a particular version.
All of the versions would live in your master database, and you would regularly run publishes through the publishing agent or some other means in order to send the appropriate version to the web database on the correct date.
Your authors can preview what the page would look like on a particular date using the date picker in the preview mode.

Sitecore: content editor crashing randomly

We have a problem whereby the content editor is crashing the browser (any browser - Chrome, Firefox & IE) and then seems to lock out the session.
This issue seems to happen in waves - for most of the day it works fine, then for a period of time it consistently happens. An example trigger point is selecting an item in the content tree, then clicking the edit button. The page then freezes. Sometimes it says 'Not Responding' in the title bar, but sometimes you can still click into the address bar, yet the page itself is completely non responsive, almost like there is an overlay over the page, preventing anything being clicked. If the address bar is still available to click, going back to root URL just causes the site to hang and just continuously loads.
What's interesting is that when this occurs, users can load up a different browser and login fine (with the same credentials). So the issue seems to be connected to the browser session. But if the user tries to perform same action (clicking the 'edit' button for an item) in the new browser then it crashes too.
I have checked the JavaScript console in the browsers development tools and there doesn't appear to be any JavaScript errors & there is nothing in the logs to suggest a problem so we are a bit confused.
We have around 6+ content editors working concurrently.
After sending a dotTrace sample to Sitecore support, they have confirmed there was a bug in version 8.1 that was causing this. The reference number for the bug is 92994.
As a work around, they suggested the following:
As a workaround for the issue, please set value of the
Indexing.UpdateInterval setting to 00:00:00. It will disable automatic
updates of Quick Search (aka system) search index. This search index
is not used for searchin by Sitecore as Search.UseLegacySearchEngine
setting is set to false. Thus, indexing can be safely disabled
Since applying this workaround, our users haven't reported the issue.
Check to make sure you don't have a dependency hard-coded into your "Main Content" field that has been moved somewhere else in the content tree or deleted outright.
I've encountered this exact experience (freezing and then session lockout) when I moved a content item I had been linking to within an iframe. I had been using a hard-coded relative link and not a SiteCore link (otherwise, there would not have been an issue, since SiteCore auto updates internal links when content is moved).
The only solution I found with my particular issue was moving the updated content item back where it was, and then editing the "Main Content" field in the content item that referenced it (or restoring it to its original location, if it was deleted).
I realize your issue is not consistent, but it's worth checking out if you haven't already. If the changes that caused the freezing aren't yet posted to your staging or production environments, that could be why your users aren't seeing this happen constantly.
This happens on literally every Sitecore instance I've seen.
Sitecore uses synchronous requests in the admin interface - if you're looking in the browser console while in the admin interface you may notice that there's a stack of warnings about synchronous requests being deprecated because they may have a negative effect on user experience.
This negative effect is what you're experiencing, where the entire browser tab (or entire browser depending on which browser you're using) is locked and won't accept any input until the server responds.
Most of the time if you wait long enough (several minutes) the tab will become responsive again, but sometimes the server seems to just never respond and you just have to refresh the tab and find your place again.
To confirm that's what's happening when the browser is locked up, instead of looking for errors in the JavaScript console look in the Network tab of the developer tools for what request is taking a long time for the server to respond.

Undoing A Sitecore Publish

Aside from investing in TDS or restoring the SQL database, is it possible to undo/rollback a Sitecore publish if someone publishes something that shouldn't have been?
I am using Sitecore 8.
If you know what the items are that were published, you could set the version that should not have been published to un-publishable and re-publish the item. That would set it back to the previous version.
You can always check the Sitecore logs for the items that have been published and then republish the versions intended while setting the unwanted versions unpublishable.
There is a setting you can activate in the config that logs every item thats been published:
<processor type="Sitecore.Publishing.Pipelines.PublishItem.UpdateStatistics, Sitecore.Kernel" runIfAborted="true">
<traceToLog>false</traceToLog>
</processor>
Beware it will add lots of information to the logs.
If you need to check back in time without this setting as true things get a bit harder. You could interrogate the history tables and eventqueue tables as these contain all the items that have changed and therefore contribute towards smart publishes. The logs should give you a view of what type of publishes have been run: smart vs incremental vs republish, and where in the tree they were kicked off.
Unfortunately there isn't the concept of a transaction over a publish, like Richard mentioned you'd need to replay items back over the top, or get a db restored.

Sitecore - Exclude items from full site publish

I am trying to find the best mechanism to flag items (which are currently being edited) to prevent them from going live during a full site publish. I don't want to use the built in "Never Publish" as this will un-publish the item, whereas i want the current item to stay live. We are not using workflow elsewhere, so putting it on every item for this feels excessive. We are using 7.5.
Thanks
You don't really need to put the workflow on "Every" item, just set it on standard value of item template, and it will be assigned to all items.
I can't think of any other way than using sitecore workflow, this is how how Sitecore works.
Workflows if your best bet, you can change the workflow steps to go directly from Draft to Approved if you want o avoid the Awaiting Publish step. You only need to set the workflow on the Standard Values of a base template that all other templates inherit.
Once you have workflow enabled, Sitecore will also automatically version Items. This allows you to set the Publishable flag on individual versioned Items.
If you don't want to use workflows for some reason, you can also create a new version of an Item from the Versions tab. Uncheck the Publishable option of the latest version until you are ready (from the Publish tab > Restrictions > Change).

sitecore is failing to publish language versions to web database

We have upgraded Sitecore to 7.1, but we are experiencing a problem with publishing.
We create a new item in the master database in English, then we publish this item, switch to the web database to check if it's there, which it is, however... The item does not have a version! Therefore the item is not displaying on the website.
Any ideas as to what could be causing this?
Thanks.
I was having the same issue with Sitecore 8+ where i was able to add language specific content but couldn't publish it. Figured out how to resolve it
1) First Language needs to be registered in \sitecore\system\languages by defining the language to be use.
2) Publish these language items first before publishing content else the behavior will be the same.
3) After publishing languages, then publish the content. In the publish window you will see the language under "Publishing language" section and select the language to publish the content.
Make sure that parent items have a version as well and are also in final state if they are part of a workflow.
I had problems with publishing because I didn't have a language version in one of my parents. In my case it was a parent folder under the content node.
Hope it helps.
Al
Please try republishing your entire site. In some cases, a part of the tree hierarchy might be missing in the Web DB, due to which, publishing the child nodes wouldnt work. Republishing the site can eliminate this chance.
This has been resolved.
It turns out that the SQL server did not have enough space for a full publish. A full publish had been attempted and failed due to the lack of space on the SQL server. subsequently this had corrupted the database.
We had to restore an earlier version of the database and ensure the SQL server had plenty of space for the full publish to finish.
I ran into this issue earlier with my Sitecore 7.2 upgrade. The key here is to ensure the items, templates and layouts (associated with the item) all has appropriate language+versions in master db. In my case, we were also using Partial Language fallback and needed to make that was working proper as well.
Once you identify the item (with missing versions), add them and republish the whole item. For few template types I noticed Sitecore was still not publishing properly. Ex: Items based off Sublayout Folder template. The fix was easy in this case as I changed the template type to Folder and republished.
Also switch to web database in sitecore client and ensure you are able to preview the item (from web db)
Hope this helps.