{"id":2976,"date":"2016-05-27T06:13:41","date_gmt":"2016-05-27T10:13:41","guid":{"rendered":"https:\/\/antipaucity.com\/?p=2976"},"modified":"2016-05-27T06:13:41","modified_gmt":"2016-05-27T10:13:41","slug":"there-is-no-such-object-on-the-server","status":"publish","type":"post","link":"https:\/\/merikebi.warrenmyers.com\/?p=2976","title":{"rendered":"there is no such object on the server"},"content":{"rendered":"<p>Gee. Thanks, {{Active Directory}}.<\/p>\n<p>This is one of the more useless error messages you can get when trying to programmatically access AD.<\/p>\n<p>Feel free to <a href=\"http:\/\/google.com\">Google<\/a> (or <a href=\"http:\/\/ddg.gg\">DuckDuckGo<\/a>, or <a href=\"http:\/\/bing.com\">Bing<\/a>, or whomever) that error message. Go ahead, I&#8217;ll wait.<\/p>\n<p>Your eyes bleeding, and gray matter leaking from your ears yet? No? Then you obviously didn&#8217;t do what I just told you to &#8211; go search the error message, I&#8217;ll be here when you get back.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/rTyN-vvFIkE\" width=\"420\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Background for how I found this particular gem: I have a customer (same one I was working with on {{SAP}} a while back where I had {{BAPI}} <a href=\"https:\/\/antipaucity.com\/2016\/01\/26\/sap-bapis-and-hp-oo\/#.V0W1F5ErKCg\">problems<\/a>) that is trying to automate {{Active Directory}} user provisioning with <a href=\"https:\/\/antipaucity.com\/tag\/hpoo\/#.V0W2BpErKCg\">HP Operations Orchestration<\/a>. As a part of this, of course, I need to verify I can connect to their AD environment, OUs are reachable, etc etc.<\/p>\n<p>In this scenario, I&#8217;m provisioning users into a custom OU (ie <em>not<\/em> merely <code>Users<\/code>).<\/p>\n<p>Provisioning into <code>Users<\/code> doesn&#8217;t give this error &#8211; only in the custom OU. Which is weird. So we tried making sure there was already a user in the OU, in case the error was being kicked-back by having and empty OU (if an OU is empty, does it truly exist?).<\/p>\n<p>That didn&#8217;t help.<\/p>\n<p>Finally, after several hours of beard-stroking, diving into deep AD docs, MSDN articles, HP forae, and more &#8230; customer&#8217;s AD admin says, &#8220;hey &#8211; how long is the password you&#8217;re trying to use; and does it meet 3-of-4?&#8221; I reply, &#8220;it&#8217;s &#8216;Password!&#8217; &#8211; 3-of-4, 9 characters long&#8221;. &#8220;Make it 14 characters long &#8211; for kicks.&#8221;<\/p>\n<p>Lo and behold! There is a security policy on that OU that mandates a minimum password <em>length<\/em> as well as complexity &#8211; but that&#8217;s not even <strong><em>close<\/em><\/strong> to what AD was sending back as an error message. &#8220;There is no such object on the server&#8221;, as the end result of a failed user create, is 100% useless &#8211; all it tells you is the user isn&#8217;t there. It doesn&#8217;t say anything about <em>why<\/em> it isn&#8217;t there.<\/p>\n<p>Sigh.<\/p>\n<p>Yet another example of [nearly] completely <a href=\"https:\/\/antipaucity.com\/2011\/09\/26\/effective-error-messages\/#.V0W4GZErKCg\">ineffective error messages<\/a>.<\/p>\n<p>AD <em>should<\/em> give you something that resembles a <em>why<\/em> for the <em>what<\/em> &#8211; not merely the &#8216;what&#8217;.<\/p>\n<p>Something like, &#8220;object could not be created; security policy violation&#8221; &#8211; while not 100% of the answer &#8211; would put you a <strong><em>lot<\/em><\/strong> closer to solving an issue than just &#8220;there is no such object on the server&#8221;.<\/p>\n<p>Get it together, developers! When other people cannot understand your error messages, regardless of how &#8220;smart&#8221; they are, what field they work in, etc, you are <em>Doing It Wrong<\/em>\u2122.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gee. Thanks, {{Active Directory}}. This is one of the more useless error messages you can get when trying to programmatically access AD. Feel free to Google (or DuckDuckGo, or Bing, or whomever) that error message. Go ahead, I&#8217;ll wait. Your eyes bleeding, and gray matter leaking from your ears yet? No? Then you obviously didn&#8217;t &hellip;<br \/><a href=\"https:\/\/merikebi.warrenmyers.com\/?p=2976\" class=\"more-link pen_button pen_element_default pen_icon_arrow_double\">Continue reading <span class=\"screen-reader-text\">there is no such object on the server<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[41],"tags":[66,289,393],"keyring_services":[],"class_list":["post-2976","post","type-post","status-publish","format-standard","hentry","category-technical","tag-active-directory","tag-error","tag-hpoo"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=\/wp\/v2\/posts\/2976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2976"}],"version-history":[{"count":0,"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=\/wp\/v2\/posts\/2976\/revisions"}],"wp:attachment":[{"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2976"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/merikebi.warrenmyers.com\/index.php?rest_route=%2Fwp%2Fv2%2Fkeyring_services&post=2976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}