
<!DOCTYPE html>
<html lang="en" dir=ZgotmplZ>

<head>
  


<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<script src="/bootstrap/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" type="text/css" href="/font-awesome/css/font-awesome.min.css">
<script src="/js/anchor.min.js"></script>
<script src="/js/flink.js"></script>
<link rel="canonical" href="https://flink.apache.org/how-to-contribute/getting-help/">

  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Getting Help # Having a Question? # The Apache Flink community answers many user questions every day. You can search for answers and advice in the archives or reach out to the community for help and guidance.
User Mailing List # Many Flink users, contributors, and committers are subscribed to Flink&rsquo;s user mailing list. The user mailing list is a very good place to ask for help.
Before posting to the mailing list, you can search the mailing list archives for email threads that discuss issues related to yours on the following websites.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Getting Help" />
<meta property="og:description" content="Getting Help # Having a Question? # The Apache Flink community answers many user questions every day. You can search for answers and advice in the archives or reach out to the community for help and guidance.
User Mailing List # Many Flink users, contributors, and committers are subscribed to Flink&rsquo;s user mailing list. The user mailing list is a very good place to ask for help.
Before posting to the mailing list, you can search the mailing list archives for email threads that discuss issues related to yours on the following websites." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/how-to-contribute/getting-help/" /><meta property="article:section" content="how-to-contribute" />


<title>Getting Help | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/getting-help/" title="获取帮助">

<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
<script defer src="/en.search.min.2698f0d1b683dae4d6cb071668b310a55ebcf1c48d11410a015a51d90105b53e.js" integrity="sha256-Jpjw0baD2uTWywcWaLMQpV688cSNEUEKAVpR2QEFtT4="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->

  <meta name="generator" content="Hugo 0.124.1">

    
    <script>
      var _paq = window._paq = window._paq || [];
       
       
      _paq.push(['disableCookies']);
       
      _paq.push(["setDomains", ["*.flink.apache.org","*.nightlies.apache.org/flink"]]);
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var u="//analytics.apache.org/";
        _paq.push(['setTrackerUrl', u+'matomo.php']);
        _paq.push(['setSiteId', '1']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    
</head>

<body dir=ZgotmplZ>
  


<header>
  <nav class="navbar navbar-expand-xl">
    <div class="container-fluid">
      <a class="navbar-brand" href="/">
        <img src="/img/logo/png/100/flink_squirrel_100_color.png" alt="Apache Flink" height="47" width="47" class="d-inline-block align-text-middle">
        <span>Apache Flink</span>
      </a>
      <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <i class="fa fa-bars navbar-toggler-icon"></i>
      </button>
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav">
          





    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">About</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-architecture/">Architecture</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-applications/">Applications</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-operations/">Operations</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/use-cases/">Use Cases</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/powered-by/">Powered By</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/roadmap/">Roadmap</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/community/">Community & Project Info</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/security/">Security</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/special-thanks/">Special Thanks</a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Getting Started</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/try-flink/local_installation/">With Flink<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/docs/try-flink-kubernetes-operator/quick-start/">With Flink Kubernetes Operator<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/get-started/introduction/">With Flink CDC<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/docs/try-flink-ml/quick-start/">With Flink ML<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/getting-started/project-setup.html">With Flink Stateful Functions<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/learn-flink/overview/">Training Course<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/">Flink 1.19 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-master/">Flink Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/">Kubernetes Operator 1.8 (latest)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main">Kubernetes Operator Main (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable">CDC 3.0 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-master">CDC Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/">ML 2.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-master">ML Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/">Stateful Functions 3.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-master">Stateful Functions Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">How to Contribute</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/overview/">Overview</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/contribute-code/">Contribute Code</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/reviewing-prs/">Review Pull Requests</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/code-style-and-quality-preamble/">Code Style and Quality Guide</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/contribute-documentation/">Contribute Documentation</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/documentation-style-guide/">Documentation Style Guide</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/improve-website/">Contribute to the Website</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/getting-help/">Getting Help</a>
  

          </li>
        
      </ul>
    </li>
  

    


    
      
  
    <li class="nav-item">
      
  
    <a class="nav-link" href="/posts/">Flink Blog</a>
  

    </li>
  

    
      
  
    <li class="nav-item">
      
  
    <a class="nav-link" href="/downloads/">Downloads</a>
  

    </li>
  

    


    









        </ul>
        <div class="book-search">
          <div class="book-search-spinner hidden">
            <i class="fa fa-refresh fa-spin"></i>
          </div>
          <form class="search-bar d-flex" onsubmit="return false;"su>
            <input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/">
            <i class="fa fa-search search"></i>
            <i class="fa fa-circle-o-notch fa-spin spinner"></i>
          </form>
          <div class="book-search-spinner hidden"></div>
          <ul id="book-search-results"></ul>
        </div>
      </div>
    </div>
  </nav>
  <div class="navbar-clearfix"></div>
</header>
 
  
      <main class="flex">
        <section class="container book-page">
          
  <article class="markdown"><!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<h1 id="getting-help">
  Getting Help
  <a class="anchor" href="#getting-help">#</a>
</h1>
<h2 id="having-a-question">
  Having a Question?
  <a class="anchor" href="#having-a-question">#</a>
</h2>
<p>The Apache Flink community answers many user questions every day. You can search for answers and advice in the archives or reach out to the community for help and guidance.</p>
<h3 id="user-mailing-list">
  User Mailing List
  <a class="anchor" href="#user-mailing-list">#</a>
</h3>
<p>Many Flink users, contributors, and committers are subscribed to Flink&rsquo;s user mailing list. The user mailing list is a very good place to ask for help.</p>
<p>Before posting to the mailing list, you can search the mailing list archives for email threads that discuss issues related to yours on the following websites.</p>
<ul>
<li><a href="https://lists.apache.org/list.html?user@flink.apache.org">Apache Mailing List Archive</a></li>
</ul>
<p>If you&rsquo;d like to post to the mailing list, you need to</p>
<ol>
<li>subscribe to the mailing list by sending an email to <code>user-subscribe@flink.apache.org</code>,</li>
<li>confirm the subscription by replying to the confirmation email, and</li>
<li>send your email to <code>user@flink.apache.org</code>.</li>
</ol>
<p>Please note that you won&rsquo;t receive a response to your mail if you are not subscribed.</p>
<h3 id="slack">
  Slack
  <a class="anchor" href="#slack">#</a>
</h3>
<p>You can join the <a href="https://join.slack.com/t/apache-flink/shared_invite/zt-1t4khgllz-Fm1CnXzdBbUchBz4HzJCAg">Apache Flink community on Slack.</a>
After creating an account in Slack, don&rsquo;t forget to introduce yourself in #introductions.
Due to Slack limitations the invite link expires after 100 invites. If it is expired, please reach out to the <a href="/what-is-flink/community/#mailing-lists">Dev mailing list</a>.
Any existing Slack member can also invite anyone else to join.</p>
<p>There are a couple of community rules:</p>
<ul>
<li><strong>Be respectful</strong> - This is the most important rule!</li>
<li>All important decisions and conclusions <strong>must be reflected back to the mailing lists.</strong>
&ldquo;If it didn’t happen on a mailing list, it didn’t happen.&rdquo; - <a href="http://theapacheway.com/on-list/">The Apache Mottos</a></li>
<li>Use <strong>Slack threads</strong> to keep parallel conversations from overwhelming a channel.</li>
<li>Use either <a href="https://apache-flink.slack.com/archives/C03G7LJTS2G">#pyflink</a> (for all Python Flink questions) or <a href="https://apache-flink.slack.com/archives/C03G7LJTS2G">#troubleshooting</a> (for all other Flink questions).</li>
<li>Please <strong>do not direct message</strong> people for troubleshooting, Jira assigning and PR review. Doing this can result in removal from Slack.</li>
</ul>
<h3 id="stack-overflow">
  Stack Overflow
  <a class="anchor" href="#stack-overflow">#</a>
</h3>
<p>Many members of the Flink community are active on <a href="https://stackoverflow.com">Stack Overflow</a>. You can search for questions and answers or post your questions using the <a href="https://stackoverflow.com/questions/tagged/apache-flink">[apache-flink]</a> tag.</p>
<h2 id="found-a-bug">
  Found a Bug?
  <a class="anchor" href="#found-a-bug">#</a>
</h2>
<p>If you observe an unexpected behavior that might be caused by a bug, you can search for reported bugs or file a bug report in <a href="/what-is-flink/community/#issue-tracker">Flink&rsquo;s JIRA</a>.</p>
<p>If you are unsure whether the unexpected behavior happened due to a bug or not, please post a question to the <a href="/what-is-flink/community/#user-mailing-list">user mailing list</a>.</p>
<h2 id="got-an-error-message">
  Got an Error Message?
  <a class="anchor" href="#got-an-error-message">#</a>
</h2>
<p>Identifying the cause for an error message can be challenging. In the following, we list the most common error messages and explain how to handle them.</p>
<h3 id="i-have-a-notserializableexception">
  I have a NotSerializableException.
  <a class="anchor" href="#i-have-a-notserializableexception">#</a>
</h3>
<p>Flink uses Java serialization to distribute copies of the application logic (the functions and operations you implement,
as well as the program configuration, etc.) to the parallel worker processes.
Because of that, all functions that you pass to the API must be serializable, as defined by
<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html">java.io.Serializable</a>.</p>
<p>If your function is an anonymous inner class, consider the following:</p>
<ul>
<li>make the function a standalone class, or a static inner class.</li>
<li>use a Java 8 lambda function.</li>
</ul>
<p>Is your function is already a static class, check the fields that you assign when you create
an instance of the class. One of the fields most likely holds a non-serializable type.</p>
<ul>
<li>In Java, use a <code>RichFunction</code> and initialize the problematic fields in the <code>open()</code> method.</li>
<li>In Scala, you can often simply use “lazy val” to defer initialization until the distributed execution happens. This may come at a minor performance cost. You can naturally also use a <code>RichFunction</code> in Scala.</li>
</ul>
<h3 id="using-the-scala-api-i-get-an-error-about-implicit-values-and-evidence-parameters">
  Using the Scala API, I get an error about implicit values and evidence parameters.
  <a class="anchor" href="#using-the-scala-api-i-get-an-error-about-implicit-values-and-evidence-parameters">#</a>
</h3>
<p>This error means that the implicit value for the type information could not be provided.
Make sure that you have an <code>import org.apache.flink.streaming.api.scala._</code> (DataStream API) or an
<code>import org.apache.flink.api.scala._</code> (DataSet API) statement in your code.</p>
<p>If you are using Flink operations inside functions or classes that take
generic parameters, then a TypeInformation must be available for that parameter.
This can be achieved by using a context bound:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-scala" data-lang="scala"><span class="line"><span class="cl"><span class="k">def</span> <span class="n">myFunction</span><span class="o">[</span><span class="kt">T:</span> <span class="kt">TypeInformation</span><span class="o">](</span><span class="n">input</span><span class="k">:</span> <span class="kt">DataSet</span><span class="o">[</span><span class="kt">T</span><span class="o">])</span><span class="k">:</span> <span class="kt">DataSet</span><span class="o">[</span><span class="kt">Seq</span><span class="o">[</span><span class="kt">T</span><span class="o">]]</span> <span class="k">=</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">  <span class="n">input</span><span class="o">.</span><span class="n">reduceGroup</span><span class="o">(</span> <span class="n">i</span> <span class="k">=&gt;</span> <span class="n">i</span><span class="o">.</span><span class="n">toSeq</span> <span class="o">)</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span></code></pre></div><p>See <a href="//nightlies.apache.org/flink//dev/types_serialization.html">Type Extraction and Serialization</a> for
an in-depth discussion of how Flink handles types.</p>
<h3 id="i-see-a-classcastexception-x-cannot-be-cast-to-x">
  I see a ClassCastException: X cannot be cast to X.
  <a class="anchor" href="#i-see-a-classcastexception-x-cannot-be-cast-to-x">#</a>
</h3>
<p>When you see an exception in the style <code>com.foo.X</code> cannot be cast to <code>com.foo.X</code> (or cannot be assigned to <code>com.foo.X</code>), it means that
multiple versions of the class <code>com.foo.X</code> have been loaded by different class loaders, and types of that class are attempted to be assigned to each other.</p>
<p>The reason for that can be:</p>
<ul>
<li>
<p>Class duplication through <code>child-first</code> classloading. That is an intended mechanism to allow users to use different versions of the same
dependencies that Flink uses. However, if different copies of these classes move between Flink&rsquo;s core and the user application code, such an exception
can occur. To verify that this is the reason, try setting <code>classloader.resolve-order: parent-first</code> in the configuration.
If that makes the error disappear, please write to the mailing list to check if that may be a bug.</p>
</li>
<li>
<p>Caching of classes from different execution attempts, for example by utilities like Guava’s Interners, or Avro&rsquo;s Schema cache.
Try to not use interners, or reduce the scope of the interner/cache to make sure a new cache is created whenever a new task
execution is started.</p>
</li>
</ul>
<h3 id="i-have-an-abstractmethoderror-or-nosuchfielderror">
  I have an AbstractMethodError or NoSuchFieldError.
  <a class="anchor" href="#i-have-an-abstractmethoderror-or-nosuchfielderror">#</a>
</h3>
<p>Such errors typically indicate a mix-up in some dependency version. That means a different version of a dependency (a library)
is loaded during the execution compared to the version that code was compiled against.</p>
<p>From Flink 1.4.0 on, dependencies in your application JAR file may have different versions compared to dependencies used
by Flink&rsquo;s core, or other dependencies in the classpath (for example from Hadoop). That requires <code>child-first</code> classloading
to be activated, which is the default.</p>
<p>If you see these problems in Flink 1.4+, one of the following may be true:</p>
<ul>
<li>You have a dependency version conflict within your application code. Make sure all your dependency versions are consistent.</li>
<li>You are conflicting with a library that Flink cannot support via <code>child-first</code> classloading. Currently these are the
Scala standard library classes, as well as Flink&rsquo;s own classes, logging APIs, and any Hadoop core classes.</li>
</ul>
<h3 id="my-datastream-application-produces-no-output-even-though-events-are-going-in">
  My DataStream application produces no output, even though events are going in.
  <a class="anchor" href="#my-datastream-application-produces-no-output-even-though-events-are-going-in">#</a>
</h3>
<p>If your DataStream application uses <em>Event Time</em>, check that your watermarks get updated. If no watermarks are produced,
event time windows might never trigger, and the application would produce no results.</p>
<p>You can check in Flink&rsquo;s web UI (watermarks section) whether watermarks are making progress.</p>
<h3 id="i-see-an-exception-reporting-insufficient-number-of-network-buffers">
  I see an exception reporting &ldquo;Insufficient number of network buffers&rdquo;.
  <a class="anchor" href="#i-see-an-exception-reporting-insufficient-number-of-network-buffers">#</a>
</h3>
<p>If you run Flink with a very high parallelism, you may need to increase the number of network buffers.</p>
<p>By default, Flink takes 10% of the JVM heap size for network buffers, with a minimum of 64MB and a maximum of 1GB.
You can adjust all these values via <code>taskmanager.network.memory.fraction</code>, <code>taskmanager.network.memory.min</code>, and
<code>taskmanager.network.memory.max</code>.</p>
<p>Please refer to the <a href="https://nightlies.apache.org/flink/flink-docs-stable/docs/deployment/">Configuration Reference</a> for details.</p>
<h3 id="my-job-fails-with-various-exceptions-from-the-hdfshadoop-code-what-can-i-do">
  My job fails with various exceptions from the HDFS/Hadoop code. What can I do?
  <a class="anchor" href="#my-job-fails-with-various-exceptions-from-the-hdfshadoop-code-what-can-i-do">#</a>
</h3>
<p>The most common cause for that is that the Hadoop version in Flink&rsquo;s classpath is different than the
Hadoop version of the cluster you want to connect to (HDFS / YARN).</p>
<p>The easiest way to fix that is to pick a Hadoop-free Flink version and simply export the Hadoop path and
classpath from the cluster.</p>
</article>

          



  
    
    <div class="edit-this-page">
      <p>
        <a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Translation+Specifications">Want to contribute translation?</a>
      </p>
      <p>
        <a href="//github.com/apache/flink-web/edit/asf-site/docs/content/how-to-contribute/getting-help.md">
          Edit This Page<i class="fa fa-edit fa-fw"></i> 
        </a>
      </p>
    </div>

        </section>
        
          <aside class="book-toc">
            
  

<nav id="TableOfContents"><h3>On This Page <a href="javascript:void(0)" class="toc" onclick="collapseToc()"><i class="fa fa-times" aria-hidden="true"></i></a></h3>
  <ul>
    <li><a href="#getting-help">Getting Help</a>
      <ul>
        <li><a href="#having-a-question">Having a Question?</a>
          <ul>
            <li><a href="#user-mailing-list">User Mailing List</a></li>
            <li><a href="#slack">Slack</a></li>
            <li><a href="#stack-overflow">Stack Overflow</a></li>
          </ul>
        </li>
        <li><a href="#found-a-bug">Found a Bug?</a></li>
        <li><a href="#got-an-error-message">Got an Error Message?</a>
          <ul>
            <li><a href="#i-have-a-notserializableexception">I have a NotSerializableException.</a></li>
            <li><a href="#using-the-scala-api-i-get-an-error-about-implicit-values-and-evidence-parameters">Using the Scala API, I get an error about implicit values and evidence parameters.</a></li>
            <li><a href="#i-see-a-classcastexception-x-cannot-be-cast-to-x">I see a ClassCastException: X cannot be cast to X.</a></li>
            <li><a href="#i-have-an-abstractmethoderror-or-nosuchfielderror">I have an AbstractMethodError or NoSuchFieldError.</a></li>
            <li><a href="#my-datastream-application-produces-no-output-even-though-events-are-going-in">My DataStream application produces no output, even though events are going in.</a></li>
            <li><a href="#i-see-an-exception-reporting-insufficient-number-of-network-buffers">I see an exception reporting &ldquo;Insufficient number of network buffers&rdquo;.</a></li>
            <li><a href="#my-job-fails-with-various-exceptions-from-the-hdfshadoop-code-what-can-i-do">My job fails with various exceptions from the HDFS/Hadoop code. What can I do?</a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</nav>


          </aside>
          <aside class="expand-toc hidden">
            <a class="toc" onclick="expandToc()" href="javascript:void(0)">
              <i class="fa fa-bars" aria-hidden="true"></i>
            </a>
          </aside>
        
      </main>

      <footer>
        


<div class="separator"></div>
<div class="panels">
  <div class="wrapper">
      <div class="panel">
        <ul>
          <li>
            <a href="https://flink-packages.org/">flink-packages.org</a>
          </li>
          <li>
            <a href="https://www.apache.org/">Apache Software Foundation</a>
          </li>
          <li>
            <a href="https://www.apache.org/licenses/">License</a>
          </li>
          
          
          
            
          
            
          
          
            
          

          
            
              
            
          
            
              
                <li>
                  <a  href="/zh/how-to-contribute/getting-help/">
                    <i class="fa fa-globe" aria-hidden="true"></i>&nbsp;中文版
                  </a>
                </li>
              
            
          
       </ul>
      </div>
      <div class="panel">
        <ul>
          <li>
            <a href="/what-is-flink/security">Security</a-->
          </li>
          <li>
            <a href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
          </li>
          <li>
            <a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
          </li>
       </ul>
      </div>
      <div class="panel icons">
        <div>
          <a href="/posts">
            <div class="icon flink-blog-icon"></div>
            <span>Flink blog</span>
          </a>
        </div>
        <div>
          <a href="https://github.com/apache/flink">
            <div class="icon flink-github-icon"></div>
            <span>Github</span>
          </a>
        </div>
        <div>
          <a href="https://twitter.com/apacheflink">
            <div class="icon flink-twitter-icon"></div>
            <span>Twitter</span>
          </a>
        </div>
      </div>
  </div>
</div>

<hr/>

<div class="container disclaimer">
  <p>The contents of this website are © 2024 Apache Software Foundation under the terms of the Apache License v2. Apache Flink, Flink, and the Flink logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>



      </footer>
    
  </body>
</html>






